Was bewirkt das COLLATE-Schlüsselwort beim Erstellen eines SQLite-Indexes?

8

Laut der sqlite3-Dokumentation

  

Die COLLATE-Klausel folgt jedem   Spaltenname definiert eine Sortierung   Sequenz für Texteingaben in diesem verwendet   Säule. Die standardmäßige Sortierfolge   ist die Sortierfolge definiert für   diese Spalte in der CREATE TABLE   Erklärung. Oder wenn keine Sortierfolge   ist anders definiert, das eingebaute   BINARY-Sortierfolge wird verwendet.

Was macht eine Sortierfolge und was ist eine BINARY-Sortierfolge?

    
Andrey Fedorov 28.04.2009, 21:11
quelle

2 Antworten

5

Es ist die Art und Weise, wie die SQL-Suchmaschine Daten intern bestellt. Binary Collation macht das, was es vorschlägt, es macht einen binären Vergleich. Im Allgemeinen ist es die schnellste Kollatierung, obwohl ich es nie quantifiziert habe, da es Bitmuster überprüft, was bedeutet, dass es fall- und akzentunempfindlich ist.

    
u07ch 30.05.2016, 15:49
quelle
1

Die binäre Sortierung vergleicht Ihre Zeichenfolge Byte für Byte wie in einer Unicode-Tabelle. Zum Beispiel: A, B, a, b. Eine Groß- und Kleinschreibung Reihenfolge wäre: a, A, b, B.

Der Vorteil der binären Sortierung ist ihre Geschwindigkeit, da der String-Vergleich sehr einfach / schnell ist. Im Allgemeinen ergeben Indizes mit Binärdaten möglicherweise keine erwarteten Ergebnisse für die Sortierung, für genaue Übereinstimmungen können sie jedoch nützlich sein.

COLLATE NOCASE wirkt sich auch auf Groß- und Kleinschreibung aus.

Wenn Sie eine Spalte mit diesen Werten haben: 'aa', 'aA'

%Vor%

Wenn Sie Ihre Spalte mit COLLATE NOCASE erstellt haben, wird sowohl 'aa' als auch 'aA' zurückgegeben. Andernfalls, wenn Sie es nicht angeben, gibt es nur 'aa' zurück.

Sie können es auch in einer Abfrage angeben (das ist langsamer, als wenn Sie Ihre Spalte mit COLLATE NOCASE erstellt hätten)

%Vor%     
40-Love 06.08.2015 15:32
quelle

Tags und Links