SQL语句是数据库资源消耗的主要来源,它往往都是可以进一步优化的,SQL优化在时间成本和风险上代价低。
我们写的SQL语句都会被查询优化器自动优化,它的优化原则是这样的:
1. 选择运算优先运行。(即优先通过条件过滤记录集)
2. 投影运算与选择运算同时进行。
3. 将笛卡尔积与随后的选择运算合并为连接运算
4. 投影运算与其他运算同时进行
5. 寻找公共子表达式并将结果加以存储
6. 对文件进行预处理
由于有了以上优化,所以下面两种SQL的写法效率一样
select * from A,B where A.id=B.id and A.name='Jake'
select * from A,B were A.name='Jake' and A.id=B.id
随着数据库的进化,原来效率低的语句现在不一定低,需要实际测试。