全模糊查询是无法优化的,一定要使用的话建议使用搜索引擎。
4、?or 语句使用不当会引起全表扫描
原因:where 子句中比较的两个条件,一个有索引,一个没索引,使用 or 则会引起全表扫描。
例如:where A=:1 or B=:2,A 上有索引,B 上没索引,则比较 B=:2 时会重新开始全表扫描
5、组合索引
排序时应按照组合索引中各列的顺序进行排序,即使索引中只有一个列是要排序的,否则排序性能会比较差。
例如:
create index skip1 on emp5(job,empno,date);
select job,empno from emp5 where job=’manager’ and empno=’10’ order by job,empno,date desc;
实际上只是查询出符合?job=’manager’ and empno=’10’??条件的记录并按 date 降序排序,但写成 order by date desc 性能较差。
6、?Update 语句,如果只更改 1、2 个字段,不要 Update 全部字段,否则频繁调用会引起明显的性能消耗,同时带来大量日志。
7、?对于多张大数据量的表 JOIN,要先分页再 JOIN,否则逻辑读会很高,性能很差。
8、?select count(*) from table;</