- SELECT 字段时,尽量少用t.*这样的写法,只写出需要查询的列名即可;
- 多表查询时多用表别名,书写规范,使用AS关键字;
- 查询条件多用where,having关键字主要是对聚合后结果进行过滤;
- 尽量不对索引列进行计算操作,如where sum(a+b)>3;
- 指定查询范围时多用exist,少用in,and和or;
参考:sql语句大全之SQL性能优化(不断总结) - TRUNCATE和DELETE 的区别:TRUNCATE相当于清空表不可删除;delete删除某些满足条件的数据在提交事务前可回退。
- 尽量使用大写字母写SQL,提高数据库识别语句速度;
- 从提升性能的角度,少用!=,可使用>或<;
- 尽量不适用NULL关键词判空;可在设计数据库时不允许空值或者用默认值代替空值;
- 使用rowid删除重复数据;通过ROWID删除重复数据;
DELETE FROM person t1
WHERE t1.rowid > (SELECT MIN(t2.rowid)
FROM employees t2
WHERE t1.employee_id = t2.employee_id --按照想要唯一保留的字段进行匹配
);
11.为查询条件中用到的列使用索引。