写SQL要学会使用"执行计划"
能写SQL是程序员的基本功,而能写出性能优异的SQL是优秀程序员的必备技能。
可那些性能好的SQL语句是怎么写出来的?难道他们了解数据库底层的东西吗?
其实了解数据库原理是一方面,更快捷的是借助“执行计划”(Explain Plan)来分析SQL语句执行的步骤及过程。不同的数据库,使用执行计划的方式有些不同,本篇以MySql数据库为例。
Explain语法id
包含一组数字,表示查询中执行select子句或操作表的顺序

id相同,执行顺序由上至下

如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行

id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行




Extra




MySQL执行计划的局限 ?EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况?EXPLAIN不考虑各种Cache?EXPLAIN不能显示MySQL在执行查询时所作的优化工作?部分统计信息是估算的,并非精确值?EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划