私はゲームサービスを持っています、私の "gamerooms"のいくつかはパスワードで保護されています。公開されているゲームのリストでは、パスワードを持っていないゲームを取り出したいと思っています。パフォーマンスのためにヌルテキストフィールドが不正かどうかチェックしていますか?
SELECT * FROM games WHERE password != null ORDER BY date LIMIT 50;
(私はのための構文を知らない。だから私はそれがOK性能面公共のゲームを見つけるために、次の操作を実行するかどう思ったんだけど
id | gameName | date | password |
---------------------------------
1 foo 123 null
2 grok 456 abc
...
:私のテーブルは次のようになります! = nullの部分)しかし、存在するようなものを考えると、それはパフォーマンスが悪くなるでしょうか?代わりに、代わりに "isPublic"という名前の列を追加する必要があります。この列は、{false、true}の値{0、1}を持つ小さなintです。
SELECT * FROM games WHERE isPublic = 1 ORDER BY date LIMIT 50;
をし、私はそれから最高のパフォーマンスを得るために「isPublic」にインデックスを置く必要があるだろうと思います。そして、私は何ができますか?
これは完全に間違っていますか?
ありがとうございます。
+1:正しい - '!='は実際の値を比較するためのものです。 NULLと比較するには、 'IS NULL'か' IS NOT NULL'を使う必要があります。 –