作者:曹理鹏@iCocos
1、对查询进行优化,应尽可能避免全表扫描
首先应考虑在 where 及 order by 涉及的列上建立索引。
下面我们来以一个表中177条数据比较一下,全表扫描与建立索引之后性能的一个比较.
从这两种方式查询数据库结果看,建立索引之后查询速度提高了些,现在数据量还不明显,如果表中有10万条速度,差异就会很明显了.
2、写数据语句时尽可能减少表的全局扫描
1)减少where 字段值null判断
SELECT * FROM "tb_real_time_car" where pay_status = null
如何这样做,就会导致引擎放弃使用索引而进行全表扫描
应该这样去设置(也就是在没有值时,我们在存数据库时自动默认给个o值,而不是什么都不写):
SELECT * FROM "tb_real_time_car" where pay_status = 0
2)应尽量避免在 where 子句中使用!=或<>操作符
SELECT * FROM "tb_real_time_car" where pay_status != null ;//或者SELECT * FROM "tb_real_time_car" where pay_status <> null ;
这样写将导致引擎放弃使用索引而进行全表扫描。
3)应尽量避免在 where