SQL性能提升
文章目录

查询顺序

连接表的顺序

  • 进行表连接的情况下

尽量将数据较小的表放在前面

1
2
Select *
From smallTable, bigTable
  • 建立连接条件的情况下

数据量大的表的连接条件放在前面

1
2
3
4
Select *
From a,b,c
Where a.d=c.d
and b.d=c.d

对不同条件进行测试

例如可以先执行这样的语句

1
2
3
4
Select count(*)
From a
Where Condition1
and Condition2

然后再将条件一与条件二进行交换, 并再次进行
通过执行的时间来决定如何将条件进行排序

全表扫描

在没有使用索引时, SQL执行时会进行全表扫描.
可以用作索引的数据:

  • 主键和外键
  • 经常被使用的字段
  • 经常作为条件的字段
  • 大部分只是唯一值的字段

其他性能考虑

  • 使用LIKE操作符和通配符

在中间使用通配符的时候

  • 避免使用OR操作符
  • 避免使用HAVING
  • 避免大规模排序操作
  • 使用存储过程
  • 批量加载的时候关闭索引

当数据进行提交的时候, 相关联的索引中也有数据变化, 因此在批量访问时候应该先关闭索引