我有一個遊戲服務,我的一些「遊戲室」有密碼保護。在公開的遊戲列表中,我只想獲取沒有密碼的遊戲。我的表如下所示:正在檢查對性能不利的空文本字段?
id | gameName | date | password |
---------------------------------
1 foo 123 null
2 grok 456 abc
...
所以我想知道如果這是確定的性能,明智的做以下找到公共遊戲:
SELECT * FROM games WHERE password != null ORDER BY date LIMIT 50;
(我不知道的語法! = null部分),但是要確定這樣的事情是否存在,是否會導致性能不佳?我是否應該添加一個名爲「isPublic」的額外列,它只是一個小的int值,{0,1}爲{false,true}?然後我可以這樣做:
SELECT * FROM games WHERE isPublic = 1 ORDER BY date LIMIT 50;
我想我必須在「isPublic」上設置一個索引以獲得最佳性能嗎?
完全錯了嗎?
感謝
+1:正確 - '!='用於實際值比較。要與NULL進行比較,您需要使用'IS NULL'或'IS NOT NULL'。 – 2012-03-31 03:44:41