当前位置:硬件测评 > 书写高质量SQL的建议

书写高质量SQL的建议

  • 发布:2023-10-04 15:27

undefined不过,也会有百分号后面不使用索引的情况。 MySQL的innodb存储引擎最终执行哪种方法是基于成本计算的。它比较全表扫描和二级索引,然后返回表查询。 能够通过 INFORMATION_SCHEMA.OPTIMIZER_TRACE来分析查询过程 复制trace字段json就可以分析了 5、查询SQL时尽量不要使用select *。相反,选择特定字段并且不返回任何未使用的字段。 反例:(统计用户数) 从 t 中选择 * 正面例子: 从 t 选择 ID、姓名、电话 原因: 阻止优化器选择更好的执行计划,例如索引扫描 添加或删除字段可能会导致代码崩溃 6.尽量避免在索引列上使用mysql的内置函数。 反例: select * from user where date_add(create_time,Interval 5 day) >=now() 正面例子: select * from user where create_time >= date_add(now(), 间隔 - 5 天) 无索引 遍历索引 7、尽量避免对where子句中的字段进行表达式操作,这会导致系统放弃使用索引而进行全表扫描。 反例:(对字段user_age进行操作,不建立索引) 从用户中选择*,其中 user_age - 1 = 2 正例:(取索引) 从用户中选择 *,其中 user_age = 3

相关文章