在项目中需要注意的简单数据库优化

1、使用索引可以提高查询的速度,但是同时会降低增加和修改时的效率,因为在新增数据时,会对数据进行索引的操作,消耗了内存。

2、or和in的使用问题
  使用or和in会导致查询效率降低主要是指在使用了索引后的情况,没有使用索引的情况下效率是相同的。如果对一列进行了索引,那么数据会按照这个列的规则进行排序,数据会在排序后被分为一个个的区间。在查询索引列等于某个值的记录时(tb=?),数据库会之间找到与条件相等的区间,找到记录,这种查询方式的效率是最高的。然而,当我们使用包含or条件的语句进行查询时(tb=?&tb=?),数据库无法找到相应的区间,从而对每一条的记录遍历判断是否符合条件。最后一种,当使用in查询时(tb in(?,?,...)),这是效率最低的方式,数据库此时会完全无视索引,对所有的记录进行遍历。
  因此,在需要用到or条件的情况下,可以考虑使用查询自条件,在将记录合并的方法提高效率(union)。另外,使用不等于的效率等同与使用or。
3、在写查询条件的时候,最好把最能过滤记录的条件往前挪,最明显的例子就是首先对索引列进行查询。查询条件的位置不同对整体查询效率的影响是很大的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值