SQL优化

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:尽量避免,字段开始就是用模糊查询,通配符少用,全表扫描,开始不使用通配符,则使用索引;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值