Ich habe einen Spieleservice, einige meiner "Spielräume" sind passwortgeschützt. In der öffentlichen Auflistung von Spielen möchte ich nur Spiele holen, die kein Passwort haben. Meine Tabelle wie folgt aussieht:Wird nach einem ungültigen Textfeld gesucht, das die Leistung beeinträchtigt?
id | gameName | date | password |
---------------------------------
1 foo 123 null
2 grok 456 abc
...
Also ich frage mich, ob es in Ordnung, Performance-weise ist folgendes zu tun öffentliche Spiele zu finden:
SELECT * FROM games WHERE password != null ORDER BY date LIMIT 50;
(ich weiß nicht, die Syntax für die! = Null-Teil), aber etwas Ähnliches zu finden, wird das in Bezug auf die Leistung schlecht sein? Soll ich stattdessen eine zusätzliche Spalte namens "isPublic" hinzufügen, die nur ein kleines int mit den Werten {0, 1} für {false, true} ist? Dann könnte ich tun:
SELECT * FROM games WHERE isPublic = 1 ORDER BY date LIMIT 50;
und ich denke, ich muss einen Index setzen würde auf „IsPublic“, um die beste Leistung aus ihm heraus?
Ganz falsch daran?
Dank
+1: Korrekt - '! =' Ist für den Istwertvergleich. Um mit NULL zu vergleichen, müssen Sie 'IS NULL' oder' IS NOT NULL' verwenden. –