MySQL 之 SQL 语句优化学习

来源:互联网 发布:mac python环境图标 编辑:程序博客网 时间:2024/05/21 17:18

常用的调优命令

  1. 查询正在运行的任务列表
SHOW FULL PROCESSLIST\G... 
  1. 生成一个查询执行计划 Query Execution Plan (QEP)
EXPLAIN SELECT * FROM USER WHERE id = 123\G

这里写图片描述

  • key为null:没有使用索引
  • rows 处理过的行
  • possible_keys 被评估的索引

一般情况下,每条SQL语句都可以运行 EXPLAIN ,对于 UPDATE 和 DELETE 需要转化为相应的 SELECT 语句以确保有效使用索引


  1. 显示表的创建信息
SHOW CREATE TABLE user\G
  1. SHOW INDEX 命令
SHOW INDEX FROM USER\G

这里写图片描述
cardinality 非常重要,该值代表在索引中每一列唯一值的数量的估计值

  1. SHOW TABLE STATUS 命令

此命令可以用来查看数据库表的底层大小和表结构等信息;
这个命令返回值的准确度取决于数据库使用的存储引擎;

show table status like 't_users'\G

这里写图片描述

待补充

深入理解 MySQL 的索引

MySQL 的索引有很多用途,不仅仅是在读取数据时优化MySQL的性能,还包括一下功能:

  • 保持数据完整性
  • 优化数据访问性能
  • 改进表的连接(join)操作
  • 对结果进行排序
  • 简化聚合数据操作

优化查询原则

  1. 在没有进一步验证可以改善性能时,不要轻易添加索引;

未完

原创粉丝点击