如何调优MySQL
问题回顾
1.为什么要使用索引?
答:索引能避免全表扫描,提高查询效率。
2.什么样的信息能成为索引?
答:主键、唯一键等让数据具备一定区分性的字段都能成为索引。
3.索引的数据结构
答:主流B+树,Hash结构,BitMap等。其中MySQL不支持BitMap,不显式支持哈希
如何定位并优化慢查询SQL
慢日志查询
慢查询的数量
注意此处使用set命令在重启数据库后又无效,恢复原来的值
如下,灌入两百万条数据,来测试慢查询
出现all为全表扫描 则需要优化
走稀疏索引account(唯一键),而不走id(主键,密集索引),是因为这是由查询优化器决定的,主键存放了其他值,拖了查询时间,而count只需要扫描叶节点构成的链表即可。所以 走稀疏索引count更快。
联合索引的最左匹配原则的成因
联合索引,由多列组成的索引。