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