1:limit
当分页查询时,使用LIMIT 0,10 (mysql语法) ,LIMIT 10 offset 0 (postgres语法)这个时候没有问题,但是当Limit 1000000,10的时候,数据库也并不知道第1000000条记录从什么地方开始,即使有索引也需要从头计算一次,效率很低
处理方式:在前端数。据浏览翻页,或者大数据分批导出等场景下,是可以将上一页的最大值当成参数作为查询条件的。
2:隐式转换
应用程序框架自动填入的参数,类型和数据库类型不同。
3:关联更新、删除
MySQL5.6 引入了物化特性(在SQL执行过程中,第一次需要子查询(in,not in,from)结果时执行子查询并将子查询的结果保存为临时表 ,后续对子查询结果集的访问将直接通过临时表),但是仅仅针对查询语句的优化。