effective mysql 1

174 阅读1分钟

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