Was bedeutet das COLLATE-Schlüsselwort beim anlegen einer sqlite-index?
Entsprechend der sqlite3-Dokumentation,
Die COLLATE-Klausel nach jeder
Spaltenname definiert eine Sortierreihenfolge
Reihenfolge für die Angaben im text
Spalte. Die Standard-Sortierreihenfolge
ist der Sortierreihenfolge definiert
die Spalte in der CREATE TABLE
- Anweisung. Oder wenn keine Sortierreihenfolge
ist anders definiert, die gebaut-in
BINÄRE Sortierreihenfolge verwendet wird.
Was macht ein collating sequence tun, und was ist eine BINÄRE Sortierreihenfolge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist die Art und Weise, dass die sql-engine von Bestellungen Daten intern. Binäre Sortierung macht das, was es vermuten lässt, es hat einen binären Vergleich. In der Regel die am schnellsten Sortierung obwohl ich noch nie quantifiziert, wie es prüft, bit-Muster, was bedeutet, dass es bei und keine Unterscheidung nach Akzent.
Binäre Sortierung vergleicht den string byte für byte, wie in einer unicode-Tabelle. Zum Beispiel: A,B,A,b.
Zwischen groß-und Kleinschreibung Reihenfolge wäre: a,a,b,B.
Den Vorteil, binäre Sortierung, ist seine Geschwindigkeit, wie string-Vergleich ist sehr einfach/schnell. Im Allgemeinen Fall, Indizes mit binären möglicherweise nicht zu den erwarteten Ergebnissen für die Art, jedoch für genaue übereinstimmungen, die Sie nützlich sein können.
COLLATE NOCASE betrifft auch die groß-Kleinschreibung Abfragen.
Wenn Sie eine Spalte mit diesen Werten: 'aa', 'aA'
Wenn Sie erstellt haben, Ihre Spalte mit COLLATE NOCASE wird es wieder beide 'aa' und 'aA'. Andernfalls, wenn Sie es nicht geben, wird es wieder nur "aa".
Können Sie auch angeben, Sie in einer Abfrage (das ist langsamer als wenn Sie geschaffen hatte, Ihre Spalte mit COLLATE NOCASE)