1:sql中联结多使用inner join,少用left join;
2:多使用含有索引的字段作为查询条件;
3:查询条件有索引的字段,不能在索引列直接使用函数,索引会失效,可使用传入的变量一列进行函数运算,索引列只进行查询;
4:sql的执行条件一般是先查询,再where条件,再输出结果集,再group by,再having,再order by;
5:如果出现一个查询的sql被频繁调用,建议先查出来总的,然后使用java代码自己取,避免多次查询,虽然单次sql查询很快,但是调用多次,就慢
6:select setval(‘seq_name’,100);
7:如果需要对输出结果的部分字段进行group by,但是其他的字段不需要group by,那么,可以对其他的字段,进行max,min,count等函数进行操作,然后group by 其他字段,则不会报错,不需要聚合的字段,则需要使用聚合函数
8:联合索引,若是联合索引第一个字段,则触发,其他不会触发索引;
9:尽量避免where子句上进行null判断,会导致引擎放弃使用索引而进行全表扫描,可以设置默认值,用默认值代替空值;
10:尽量避免where子句中使用!=或者<>操作符,否则将放弃引擎,而全表扫描;
11:in和not in也要慎重使用,对于连续值,最好使用between,而不要使用in;
12:应尽量避免,where子句中,对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描;
13:应尽量避免,where子句中进行函数操作,这将导致引擎放弃使用索引而进行全表扫描;
14:尽量避免,字段开始就是用模糊查询,通配符少用,全表扫描,开始不使用通配符,则使用索引;
SQL优化
最新推荐文章于 2024-04-28 10:15:00 发布