1.1 识别性能问题
执行下面查询能看到sql执行情况
show full processlist
在决定使用这个sql的时候,最好先测试这个sql的执行时间(都用select)
MySQL执行sql之前 --> 分析SQL语法 --> 构造一个QEP(query execution plan)
QEP决定了MySQL从存储引擎获取数据的方式
在执行select语句的时候加explain:
可以看到MySQL查询优化器为sql构造的QEP
1.2 优化查询
在没有验证的情况下,不应该随便执行DDL操作
-
执行DDL操作时DML操作会被阻塞(select可能会排在DML之后)
-
一个表在有多个索引时,DML会有性能问题
执行一下select语句,确认执行时间;
通过QEP确认索引效率;
验证表现有结构:
show create table tablename\G
确认表大小
show table status like 'tablename'\G