常用的调优命令
- 查询正在运行的任务列表
SHOW FULL PROCESSLIST\G...
- 生成一个查询执行计划 Query Execution Plan (QEP)
EXPLAIN SELECT * FROM USER WHERE id = 123\G
- key为null:没有使用索引
- rows 处理过的行
- possible_keys 被评估的索引
一般情况下,每条SQL语句都可以运行 EXPLAIN ,对于 UPDATE 和 DELETE 需要转化为相应的 SELECT 语句以确保有效使用索引
- 显示表的创建信息
SHOW CREATE TABLE user\G
- SHOW INDEX 命令
SHOW INDEX FROM USER\G
cardinality 非常重要,该值代表在索引中每一列唯一值的数量的估计值
- SHOW TABLE STATUS 命令
此命令可以用来查看数据库表的底层大小和表结构等信息;
这个命令返回值的准确度取决于数据库使用的存储引擎;
show table status like 't_users'\G
待补充
深入理解 MySQL 的索引
MySQL 的索引有很多用途,不仅仅是在读取数据时优化MySQL的性能,还包括一下功能:
- 保持数据完整性
- 优化数据访问性能
- 改进表的连接(join)操作
- 对结果进行排序
- 简化聚合数据操作
优化查询原则
- 在没有进一步验证可以改善性能时,不要轻易添加索引;
未完