1 出现的命令总结
- max_connections
- kill connection
- wait_timeout
- show processlist
- 查 information_schema 库的 innodb_trx 表
- –skip-grant-tables 参数
- –skip-networking 参数
- set sql_log_bin=off
- query_rewrite.rewrite_rules
- force index
- 慢查询日志(slow log)
- long_query_time
- Rows_examined
- innodb_stats_persistent
- cardinality
- show index
- explain
- analyze table t
- alias
- month()
- CAST
- add index index2(email(6))
- count(distinct email)
- reverse(‘input_id_card_string’)
- innodb_flush_log_at_trx_commit
- innodb_io_capacity
- innodb_max_dirty_pages_pct
- show table status
2 一句话总结章节的内容
一句话总结 | 章节 |
---|---|
由于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有哪些“饮鸩止渴”提高性能的方法? |