我有一個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