1. selelct语句中尽量避免使用*
需要哪些列的数据,就提取哪些列的数据,尽量少用*来获取数据
2. where字句比较符号左侧避免使用函数
导致数据库引擎进行全表扫描,从而增加运行行时间;考虑将其移到比较运算符右侧
3.尽量避免使用in和Not in
也会导致数据库进行全表搜索,增加运行时间,部分场景可以用between and 优化
4.尽量避免使用or
同样会导致数据库进行全表搜索
解决方法:分别查询,然后用union进行合并
5. 使用limit字句限制返回的数据行数
【问题】如果前台只显示需要的15行数据,但是查询结果有1万条,
【解决方法】那么最好使用limit字句来限制查询返回的数据行数
【limit语法】:
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)