我有一个mysql数据表,我只需要返回没有“Deactive”状态且没有Total 0的行(但可以有状态为deactive的行和总数不是0,反之亦然)。之前,我需要这个要求,我只是在做标准查询,选择所有行:Mysql查询效率
SELECT * FROM tableName WHERE uid = id;
但是现在,当我更改查询以加入上述限制:
SELECT * FROM tableName WHERE uid = id AND (status != "Deactive" OR Total != 0);
这种自下而上查询花费多少更长的时间才能完成。为什么会发生这种情况,有没有更好的方法可以做这个查询?
多少条记录出现在表中你有你要么添加到查询的字段的索引? – Braiba 2012-07-09 22:40:23
是不是你的第二个查询应该是'SELECT * FROM tableName WHERE uid = id AND(status!=“Deactive”OR Total!= 0);'。还要在这些字段中添加索引,您的查询将得到更快执行... – 2012-07-09 22:40:37
只有几千条记录。不,我没有这些属性的任何索引,因为表格不是很大。 – ewein 2012-07-09 22:49:49