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