MySQL Byte-für-Byte-Vergleich, was ist schneller? binär vs bin_collate

Angenommen, wir haben eine Tabelle, die so aussieht:

create table t1(c1 varchar(x)collate utf8mb4_general_ci, index(c1))

Um bytesensitive Vergleiche durchzuführen, haben wir grundsätzlich zwei Möglichkeiten (angenommen, dassall relevante Zeichenfolgen tunnich haben nachgestellte Leerzeichen, d. h. sie sind alle padspace-konform):

select*from t1 where c1 ='test'collate utf8mb4_bin

select*from t1 where c1 = binary'test'

Was sollte bevorzugt werden, wenn Leistung von Belang ist?

Wenn Sie einen Index für die Sortierung nicht-binärer Zeichen verwenden, ist es schneller,vergleichen Si mitbinary string oder binäre Kollatierung?

(Hinzufügen einer neuen Spalte zur Tabelle, um nur das binäre Äquivalent von @ zu speicherc1 ist ein großer Speicherhit und nicht möglich.)

(S. Würde mich über eine Antwort freuen, die sowohl Hash- als auch Btree-Vergleiche vergleicht, obwohl ich hauptsächlich an Btree-Vergleichen interessiert bin.)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage