现在的位置: 首页 > 综合 > 正文

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

2018年04月06日 ⁄ 综合 ⁄ 共 498字 ⁄ 字号 评论关闭

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

2、or和in的使用问题
  使用or和in会导致查询效率降低主要是指在使用了索引后的情况,没有使用索引的情况下效率是相同的。如果对一列进行了索引,那么数据会按照这个列的规则进行排序,数据会在排序后被分为一个个的区间。在查询索引列等于某个值的记录时(tb=?),数据库会之间找到与条件相等的区间,找到记录,这种查询方式的效率是最高的。然而,当我们使用包含or条件的语句进行查询时(tb=?&tb=?),数据库无法找到相应的区间,从而对每一条的记录遍历判断是否符合条件。最后一种,当使用in查询时(tb
in(?,?,...)),这是效率最低的方式,数据库此时会完全无视索引,对所有的记录进行遍历。

  因此,在需要用到or条件的情况下,可以考虑使用查询自条件,在将记录合并的方法提高效率(union)。另外,使用不等于的效率等同与使用or。
3、在写查询条件的时候,最好把最能过滤记录的条件往前挪,最明显的例子就是首先对索引列进行查询。查询条件的位置不同对整体查询效率的影响是很大的。

抱歉!评论已关闭.