前言

    SQL 查询优化,可以分为逻辑查询优化和物理查询优化。

  • 对于数据表的查询操作,首先要考虑的就是如何要写出效率高的SQL语句,即逻辑查询优化。
  • 而物理查询优化简单的来说就是瑞和搞笑的建立索引,通过索引来做各种优化。

    逻辑查询优化

    上述的逻辑查询优化,就是通过写法,让SQL执行的效率更高,例如:
  • exists和in子查询,会根据小表驱动达标,即小表在外层,大表在内层。
  • 在where子句中尽量避免对字段进行函数运算,这样会让字段的索引失效。

    物理查询优化

    通常情况下,索引的建立也是需要根据实际情况来创建的,并非所有情况下建立索引都会让查询效率变高。
  • 如果数据的重复度比较高,就不需要创建索引。
  • 注意建立的索引字段是否被额外的使用。例如:逻辑查询优化中说到的第2点。
  • 注意联合索引对索引使用的影响。联合索引非常注重索引的顺序。
  • 注意多个索引对索引使用的影响。每个索引都需要存储空间,索引越多所需的存储空间越大。同时过多的索引也会导致优化器在评估的时候增加了筛选出索引的计算时间,影响评估效率。

学习参考来自课程《SQL必知必会》