mysql存储引擎之myisam学习
?
myisam存儲引擎特點:
1.不支持事務(wù)
2.表級鎖定(更新時鎖整個表,其索引機制是表級索引,這雖然可以讓鎖定的實現(xiàn)成本很小,但是也同時大大降低 了其并發(fā)性能)
3.讀寫互相阻塞:不僅會在寫入的時候阻塞讀取,myisam還會在讀取的時候阻塞寫入,但讀本身并不會阻塞另外的讀。
4.只會緩存索引:myisam可以通過key_buffer_size緩存索引,以大大提高訪問性能減少磁盤IO,但是這個緩存區(qū)只會緩存索引,而不會緩存數(shù)據(jù)。
5.讀取速度較快,占用資源相對少
6.不支持外鍵約束,但支持全文索引
myisam引擎適用的生產(chǎn)業(yè)務(wù)場景
1.不需要事務(wù)支持的業(yè)務(wù)(列如轉(zhuǎn)賬就不行,充值付款)
2.一般為讀數(shù)據(jù)比較多的應(yīng)用,讀寫都頻繁場景不適合,讀多或者寫多的都適合
3.讀寫并發(fā)訪問相對較低的業(yè)務(wù)( 純讀純寫高并發(fā)也可以)
4.數(shù)據(jù)修改相對較少的業(yè)務(wù)(阻塞問題)
5.以讀為主的業(yè)務(wù)
6.對數(shù)據(jù)一致性要求不是非常高的業(yè)務(wù)(不支持事務(wù))
7.中小型的網(wǎng)站部分業(yè)務(wù)會用
?
myisam引擎調(diào)優(yōu)精要
設(shè)置合適的索引(緩存機制)
調(diào)整讀寫優(yōu)先級,根據(jù)實際需求確保重要操作更優(yōu)先執(zhí)行
啟用延遲插入改善大批量寫入性能(降低寫入頻率,盡可能多條數(shù)據(jù)一次性寫入)
盡量順序操作讓insert數(shù)據(jù)都寫入到尾部,減少阻塞
分解大的時間長的操作,降低單個操作的阻塞時間
降低并發(fā)數(shù)(減少對mysql訪問),某些高并發(fā)場景通過應(yīng)用進行排隊隊列機制
對于相對靜態(tài)(更改不頻繁)的數(shù)據(jù)庫數(shù)據(jù),充分利用Query Cache或memcached緩存服務(wù)可以極大的提高效率
query_cache_size=2m
query_cache_limit=1m
query_cache_min_res_unit=2k
myisam的count只有在全表掃描的時候特別高效,帶有其他條件的count都需要進行實際的數(shù)據(jù)訪問。
可以把主從同步的主庫使用innodb,從庫使用myisam引擎(不推薦)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/lisqiong/p/5666989.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的mysql存储引擎之myisam学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3143 二叉树的序遍历
- 下一篇: sql 给数据库表 字段 添加注释