閱讀筆記-mysql myisam和innodb的五個差異

count(*)

  • 對於myisam引擎,會直接存儲總行數,所以比較快;但是如果一旦添加了查詢條件則統計方式和innodb相同(一行一行的掃描)
  • 所以不管用什麼引擎都要建立好索引

全文索引

  • MyIsam支持,innodb在5.6後支持
  • 不過在高併發大數據的情況下都不支持使用內置的全文索引,要使用索引外置
    索引外置待後續瞭解!!!

事務

  • myisam不支持,innodb支持
  • myisam可以使用lock table的方式曲線救國,不過對性能影響很大,不推薦

外鍵

  • myisam不支持,innodb支持
  • 但是外鍵並不推薦使用,使用外鍵每次修改的時候要做檢查嚴重影響效率

  • myisam只支持表鎖,innodb支持行鎖
  • 由於innodb支持行鎖所以其併發性能優於myisam
  • innodb的行鎖是實現在索引上的,不是物理地址上。換句話說如果沒有命中索引,將無法使用行鎖,只有用表鎖,所以建好索引很重要
t_user(uid, uname, age, sex) innodb;
uid PK
無其他索引

update t_user set age=10 where uid != 1;
未命中索引,表鎖???(這個暫時還存在疑問)

https://mp.weixin.qq.com/s/JEJcgD36dpKgbUi7xo6DzA

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章