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