|
|
由于MySQL统计信息错误或者其他原因,导致SQL语句虽然没有问题,但是MySQL选择的索引和预期不一样,导致性能出现问题,可以通过:analyze table,force index,诱导等方式解决。 |
10. MySQL为什么有时候会选错索引? |
前缀索引、最左前缀原则、倒序存储、哈希存储 |
11. 怎么给字符串字段加索引? |
大部分情况SQL执行没问题,偶尔会很慢,不是SQL没写好的原因,而是数据库在刷脏页。可能是由于redo log写满了或者内存不够而淘汰的内存页中有脏页,都会触发刷脏页操作。 |
12. 为什么我的MySQL会“抖”一下 |
只是delete表,表文件大小不会改变。需要alter table重建表,重建表有两种方式:本地DDL和Online DDL |
13. 为什么表数据删掉一半,表文件大小不变? |
count(*)的实现方式,Redis缓存记录行数的缺点,count(1),count(id), count(字段)区别 |
14. count( * )这么慢,我该怎么办? |
SQL语句中,对字段做函数操作,破坏索引的有序性,导致MySQL放弃走索引搜索树。 |
18. 为什么这些SQL语句逻辑相同,性能却差异巨大? |
等flush,等锁(MDL锁、行锁),字段没索引,字段有索引但是undo log太多 |
19. 为什么我只查一行的语句,也执行这么慢? |
已经上线的MySQL,在业务高峰期,如何临时地提升一下性能。 |
22. MySQL有哪些“饮鸩止渴”提高性能的方法? |
|
|
|
|