MySQL 性能调优之存储引擎
原文:http://bbs.landingbj.com/t-0-246222-1.html??????? http://bbs.landingbj.com/t-0-245851-1.html
?
MySQL性能調優中,對MyISAM存儲引擎的優化。
在優化MyISAM存儲引擎中,需要考慮的點如下:
盡量索引,MyISAM只緩存索引不緩存數據;
根據實際需求,調整讀寫優先級;
延遲插入,使用?INSERT?DELAY,減少和?SELECT?競爭
數據順序操作,讓INSERT全部到尾部,減少和SELECT競爭;
分解大操作,將大操作分解成多步小操作,防止長時間鎖定;
降低并發數,表鎖會導致競爭激烈,通過排隊機制提高效率;
充分利用?Query?Cache:對于靜態數據,盡量使用?Query?Cache。
另外MyISAM不需要事務支持,并且以讀為主。MyISAM的讀效率較高,但MyISAM有一個弊病,那就是表容易壞,需要定期REPAIR。
?
在線上環境中,InnoDB適用于以下場景:
1.需要事務支持;
2.并發較大;
3.數據變更比較頻繁;
4.數據一致性要求較高;
5硬件設備內存較大,遠大于索引數據量;
在優化InnoDB存儲引擎中,需要考慮的點如下:
1.主鍵盡可能小:所有非主鍵索引都需要存儲主鍵;
2.索引整合,減少冗余索引,降低數據量;
3.避免全表掃描,因為會導致表鎖;
4.盡量自己控制事務,關閉aotucommit;
5.盡量緩存所有數據和索引;
6.合理設置innodb_flush_log_at_trx_commit;
7.充分利用索引避開表鎖;
8.避免主鍵更新。
InnoDB和MyISAM各有所長,沒有哪個比哪個好,只要能解決實際問題就好。在生產環境中使用哪種存儲引擎需要經過多方面的考慮。實際上,很多公司是兩種存儲引擎混用的。
?
轉載于:https://www.cnblogs.com/jackzz/p/9125968.html
總結
以上是生活随笔為你收集整理的MySQL 性能调优之存储引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改Sublime Text3左侧导航字
- 下一篇: 译:9.使用Redis进行消息传递