标签:
1:可以查看information_schema.index_statistics 来查看索引的使用信息。还可以使用pt-index-usage 这个工具来分析日志再结合explain 来分析使用的索引。
2:innodb 要访问行时会对其加锁,索引可以减少innodb访问的行数。从而减少锁的数量。但这只有当innodb 在存储引擎层能够过渡掉所有不需要的行时才有效,
如果索引没有办法过滤掉无效的行,那么在innodb 检索到数据并返回给服务器层以后,mysql 服务器层才可以应用where 子句。这里已经没有办法避免行锁定了。
innodb 已经锁定了这些行,要到合适的时候才会释放。5.1以后的版本会在服务器层执行完where 语句后才放,以前的版本会在事务完成时才释放。这个也可以从
explain 中看出来 extra : using where。
标签:
原文地址:http://www.cnblogs.com/JiangLe/p/4295502.html