1. my.cnf中的把 innodb_buffer_pool_size=16g
別佔滿了記憶體。
2. my.cnf中的把 innodb_log_buffer_size= 50m
這個主要是滿足大事務的需求。
3. my.cnf中的把 innodb_log_file_size= 4g
(這個是在硬碟,所以先設大
點,這個值設大點可能導致 mysql crash之後恢復會比較慢,但好處是效能會比
較高)4. my.cnf 中的把 innodb_write_io_threads= 8
5. my.cnf 中的把 innodb_read_io_threads= 8
上面兩個值看需求
6. 如果系統併發量大的話(上百上千。。。可能你們用不到),可以考慮把
innodb_buffer_pool_instances設大,但是需要注意
innodb_buffer_pool_instances * innodb_buffer_pool_size 別大於16g
7. my.cnf中在[mysqld]下面新增 innodb_file_per_table
8. 如果業務對事務的安全性要求不是特別強的話
my.cnf中在[mysqld]下新增(或修改)
innodb_flush_log_at_trx_commit=2
存在的風險是如果作業系統crash了或機器斷電了,最後一秒所有提交事務可能
會丟失,這裡是已經提交的,所以你那裡的應用端應該已經正確返回了。
9. 另外您可以考慮對資料壓縮,
my.cnf中的把 row_format=compressed
如果有很大的text,blob, varchar 可以考慮使用。
10. 在my.cnf的 [mysqld]中 transaction-isolation= repeatable-read
(這個是預設值。。。)
如果隔離級別低於 repeatable-read ,binlog會按照語句級來記錄,當進行批量插入,刪除時候,可能會影響效能。
11. expire_logs_days=3 保留3天(包括今天)的binlog檔案
以避免binlog占用過多的磁碟空間。
mysql引數優化
back log 要求 mysql 能有的連線數量。當主要mysql執行緒在乙個很短時間內得到非常多的連線請求,這就起作用,然後主線程花些時間 儘管很短 檢查連線並且啟動乙個新執行緒。back log值指出在mysql暫時停止回答新請求之前的短時間內多少個請求可以被存在堆疊中。只有如果期望在乙個短時...
Mysql引數優化
修改的引數 1 long query time 10改為long query time 2 此引數為將執行時間超過多少秒的sql,放入慢查詢日誌。在此將時間從10秒縮短為2秒,從而更加詳細的抓取重負載的sql。2 tmp table size 75m改為tmp table size 256m 此引數...
mysql引數優化
mysql引數優化 用來存放innodb的內部目錄,對於大資料設定16m足夠用 innodb additional mem pool size 16m innodb 快取總大小設定,一般設定為系統記憶體的70 80 innodb buffer pool size 12g 指定所有innodb資料檔案...