亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

MySQL寫入插入數據優化配置

系統 2023 0

*innodb_buffer_pool_size

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

*innodb_additional_pool_size

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

*innodb_log_file_size

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

*innodb_log_buffer_size

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

innodb_flush_log_at_trx_commit (www.111cn.net這個很管用

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

上面是網上看的,我發現慢查詢日志內有很多update和insert的查詢,就把innodb_flush_log_at_trx_commit改成了2,效果很明顯,改成0會更明顯,但安全性比較差。做下面的操作啟動mysqld就生效

vim /etc/my.cn

innodb_flush_log_at_trx_commit=2

也可以在mysqld運行時執行

set GLOBAL innodb_flush_log_at_trx_commit = 2

下面是mysql手冊上innodb_flush_log_at_trx_commit的解釋

如果innodb_flush_log_at_trx_commit設置為0,log buffer將每秒一次地寫入log file中,并且log file的flush(刷到磁盤)操作同時進行;但是,這種模式下,在事務提交的時候,不會有任何動作。如果 innodb_flush_log_at_trx_commit設置為1(默認值),log buffer每次事務提交都會寫入log file,并且,flush刷到磁盤中去。如果innodb_flush_log_at_trx_commit設置為2,log buffer在每次事務提交的時候都會寫入log file,但是,flush(刷到磁盤)操作并不會同時進行。這種模式下,MySQL會每秒一次地去做flush(刷到磁盤)操作。注意:由于進程調度策 略問題,這個“每秒一次的flush(刷到磁盤)操作”并不是保證100%的“每秒”

默認值1是為了ACID (atomicity, consistency, isolation, durability)原子性,一致性,隔離性和持久化的考慮。如果你不把innodb_flush_log_at_trx_commit設置為1,你將獲得更好的性能,但是,你在系統崩潰的情況,可能會丟失最多一秒鐘的事務數據。當你把innodb_flush_log_at_trx_commit設置 為0,mysqld進程的崩潰會導致上一秒鐘所有事務數據的丟失。如果你把innodb_flush_log_at_trx_commit設置為2,只有在操作系統崩潰或者系統掉電的情況下,上一秒鐘所有事務數據才可能丟失。InnoDB的crash recovery崩潰恢復機制并不受這個值的影響,不管這個值設置為多少,crash recovery崩潰恢復機制都會工作。

另外innodb_flush_method參數也值得關注,對寫操作有影響

innodb_flush_method: 設置InnoDB同步IO的方式

1) Default – 使用fsync()

2) O_SYNC 以sync模式打開文件,通常比較慢

3) O_DIRECT,在Linux上使用Direct IO。可以顯著提高速度,特別是在RAID系統上。避免額外的數據復制和double buffering(mysql buffering 和OS buffering)。

更多詳細內容請查看: http://www.111cn.net/database/mysql/56376.htm

MySQL寫入插入數據優化配置


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕在线观看免费 | 国产特级毛片 | 国产好大好爽久久久久久久 | 国语偷拍视频在线观看 | 中国欧美一级毛片免费 | 欧亚在线视频 | 色哟网站| 99热这里有免费国内精品 | 能在线观看的一区二区三区 | 欧美亚洲国产一区二区三区 | 嘿咻嘿咻免费区在线观看吃奶 | 91粉色视频在线观看 | 99热国产这里只有精品99 | 国产在线观看91精品不卡 | 日韩精品亚洲一级在线观看 | 色综合一本到久久亚洲91 | 欧美日韩国产亚洲一区二区三区 | 狼狼色丁香久久婷婷综合五月 | dxj伊人| 久久在线免费观看视频 | 99热久久这里只有精品2010 | 久久国产精品最新一区 | 成人欧美视频在线观看播放 | 国自产拍在线天天更新91 | 久久99精品久久久久久园产越南 | 亚洲十欧美十日韩十国产 | 一级特黄性色生活片一区二区 | 99久久香蕉国产综合影院 | 久久综合一区二区 | 亚洲天天做夜夜做天天欢人人 | 日韩精品视频观看 | 国产一区二区三区日韩 | 久久成人小视频 | 国产欧美高清 | 精品一区二区三区的国产在线观看 | julia紧身裙中文字幕在线看 | 久久国产精品自在自线 | 天天干天天舔 | 国产高清在线a视频大全凹凸 | 久久久久夜夜夜精品国产 | 伊人伊网 |