欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL優(yōu)化insert性能的方法示例

 更新時間:2018年06月13日 09:03:23   作者:傲雪星楓  
對于一些數據量較大的系統(tǒng),數據庫面臨的問題除了查詢效率低下,還有就是數據入庫時間長。下面這篇文章主要給大家介紹了關于MySQL優(yōu)化insert性能的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

MySQL性能優(yōu)化

MySQL性能優(yōu)化就是通過合理安排資源,調整系統(tǒng)參數使MySQL運行更快、更節(jié)省資源。MySQL性能優(yōu)化包括查詢速度優(yōu)化、更新速度優(yōu)化、MySQL服務器優(yōu)化等。本篇博客將從查詢優(yōu)化、數據庫結構優(yōu)化、MySQL服務器優(yōu)化3個方面介紹。

MySQL數據庫優(yōu)化,一方面是找出系統(tǒng)瓶頸,提高MySQL數據庫整體性能;另一方面需要合理的結構設計和參數調整,以提高用戶操作響應速度;同時還要盡可能節(jié)省系統(tǒng)資源,以便系統(tǒng)可以提供更大負荷的服務。例如,通過優(yōu)化文件系統(tǒng),提高磁盤I\O的讀寫書讀;通過優(yōu)化操作系統(tǒng)調度策略,提高MySQL在高負荷下的負載能力;優(yōu)化表結構、索引、查詢語句等使查詢響應更快。

MySQL的 insert 語句語法,關于mysql 優(yōu)化 insert 性能 的相關介紹。

insert into `table`(`field1`,`field2`) values('value1','value2'); 

提高insert 性能的方法

1.一條sql語句插入多條數據

INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0); 
INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_1', 'content_1', 1); 

可以寫成

INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0), ('userid_1', 'content_1', 1); 

2.使用事務

START TRANSACTION; 
INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0); 
INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_1', 'content_1', 1); 
... 
COMMIT; 

注意

1.sql語句長度有限制,合并sql語句時要注意。長度限制可以通過max_allowed_packet配置項修改,默認為1M。

2.事務太大會影響執(zhí)行效率,mysql有innodb_log_buffer_size配置項,超過這個值會使用磁盤數據,影響執(zhí)行效率。

關于事務的配置項說明:

innodb_buffer_pool_size

如 果用Innodb,那么這是一個重要變量。相對于MyISAM來說,Innodb對于buffer size更敏感。MySIAM可能對于大數據量使用默認的key_buffer_size也還好,但Innodb在大數據量時用默認值就感覺在爬了。 Innodb的緩沖池會緩存數據和索引,所以不需要給系統(tǒng)的緩存留空間,如果只用Innodb,可以把這個值設為內存的70%-80%。和 key_buffer相同,如果數據量比較小也不怎么增加,那么不要把這個值設太高也可以提高內存的使用率。

innodb_additional_pool_size

這個的效果不是很明顯,至少是當操作系統(tǒng)能合理分配內存時。但你可能仍需要設成20M或更多一點以看Innodb會分配多少內存做其他用途。

innodb_log_file_size

對于寫很多尤其是大數據量時非常重要。要注意,大的文件提供更高的性能,但數據庫恢復時會用更多的時間。我一般用64M-512M,具體取決于服務器的空間。

innodb_log_buffer_size

默認值對于多數中等寫操作和事務短的運用都是可以的。如 果經常做更新或者使用了很多blob數據,應該增大這個值。但太大了也是浪費內存,因為1秒鐘總會 flush(這個詞的中文怎么說呢?)一次,所以不需要設到超過1秒的需求。8M-16M一般應該夠了。小的運用可以設更小一點。

innodb_flush_log_at_trx_commit

抱怨Innodb比MyISAM慢 100倍?那么你大概是忘了調整這個值。默認值1的意思是每一次事務提交或事務外的指令都需要把日志寫入(flush)硬盤,這是很費時的。特別是使用電 池供電緩存(Battery backed up cache)時。設成2對于很多運用,特別是從MyISAM表轉過來的是可以的,它的意思是不寫入硬盤而是寫入系統(tǒng)緩存。日志仍然會每秒flush到硬 盤,所以你一般不會丟失超過1-2秒的更新。設成0會更快一點,但安全方面比較差,即使MySQL掛了也可能會丟失事務的數據。而值2只會在整個操作系統(tǒng) 掛了時才可能丟數據。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • MYSQL中查詢LONGBLOB類型數據的大小的詳細示例

    MYSQL中查詢LONGBLOB類型數據的大小的詳細示例

    在MySQL中,LONGBLOB?是一種二進制大對象(BLOB)數據類型,用于存儲大量的二進制數據,但是,LONGBLOB?數據類型本身并不直接存儲數據的大?。ㄩL度),它存儲的是二進制數據的實際內容,這篇文章主要介紹了MYSQL中怎么查詢LONGBLOB類型數據的大小,需要的朋友可以參考下
    2024-06-06
  • MySQL查詢學習之基礎查詢操作

    MySQL查詢學習之基礎查詢操作

    這篇文章主要給大家介紹了關于MySQL查詢學習之基礎查詢操作的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • 安裝MySQL在最后的start service停住了解決方法

    安裝MySQL在最后的start service停住了解決方法

    今天為一個客戶配置服務器的時候,發(fā)現(xiàn)的問題,原來他自己安裝過mysql但安全沒有配置好,路徑選擇的也不好,重新安裝后發(fā)現(xiàn)在start service卡住了,通過下面的方法解決了,特分享下
    2013-11-11
  • MySQL優(yōu)化之表結構優(yōu)化的5大建議(數據類型選擇講的很好)

    MySQL優(yōu)化之表結構優(yōu)化的5大建議(數據類型選擇講的很好)

    很多人都將 數據庫設計范式 作為數據庫表結構設計“圣經”,認為只要按照這個范式需求設計,就能讓設計出來的表結構足夠優(yōu)化,既能保證性能優(yōu)異同時還能滿足擴展性要求
    2014-03-03
  • MySQL 多表關聯(lián)一對多查詢實現(xiàn)取最新一條數據的方法示例

    MySQL 多表關聯(lián)一對多查詢實現(xiàn)取最新一條數據的方法示例

    這篇文章主要介紹了MySQL 多表關聯(lián)一對多查詢實現(xiàn)取最新一條數據的方法,結合實例形式詳細分析了MySQL 多表關聯(lián)一對多查詢實現(xiàn)取最新一條數據相關原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2020-05-05
  • MySQL筆記之字符串函數的應用

    MySQL筆記之字符串函數的應用

    字符串操作在程序設計中是非常重要的組成部分,而MySQL數據庫中的字符串操作卻相當簡單
    2013-05-05
  • win10 安裝mysql 8.0.18-winx64的步驟詳解

    win10 安裝mysql 8.0.18-winx64的步驟詳解

    這篇文章主要介紹了win10 安裝mysql 8.0.18-winx64的步驟,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • MySql查詢某個時間段內的數據實例(前一周、前三個月、前一年等)

    MySql查詢某個時間段內的數據實例(前一周、前三個月、前一年等)

    在實際工作中需要整理一份時間在規(guī)定時間前后的統(tǒng)計表,下面這篇文章主要給大家介紹了關于MySql查詢某個時間段內的數據的相關資料,包括前一周、前三個月、前一年等,需要的朋友可以參考下
    2022-10-10
  • Mysql啟動中 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 的問題

    Mysql啟動中 InnoDB: Error: log file ./ib_logfile0 is of differe

    對于使用了默認 my.cnf(一般教程都會教你使用support-files/my-medium.cnf)的Mysql服務來說如果中間使用了innodb的話,innodb默認的log file大小是56M
    2011-05-05
  • 解壓版MYSQL中文亂碼問題解決方案

    解壓版MYSQL中文亂碼問題解決方案

    這篇文章主要介紹了解壓版MYSQL中文亂碼問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09

最新評論