Porównanie ma znaczenie tylko wtedy, gdy musisz ORDER BY
lub przeszukaj kolumnę. Te elementy zakodowane w base64 prawdopodobnie nie będą przeszukiwane ani sortowane.
Jeśli zakodowane elementy mają gwarantowaną długość mniejszą niż 64 KB, zdefiniuj swoją kolumnę w następujący sposób:
`columnname` TEXT CHARACTER SET ascii,
Dokładnie to jest potrzebne dla zmiennej zakodowanej w base64; proces kodowania zamienia wszystko w możliwy do wyświetlenia ASCII.
Jeśli elementy będą miały mniej niż 16 megabajtów długości, ale niektóre będą dłuższe niż 64 KB, użyj MEDIUMTEXT
zamiast TEXT
.
Edytuj lata później.
Zakodowany ciąg OQ, zdekodowany, jest zserializowanym obiektem php:
a:2:{s:20:"Type_of_organisation";s:20:"Member of Parliament";s:8:"Postcode";s:7:"PE1 1JA";}
Obserwacja 1:wiele z tych rzeczy jest przechowywanych w kolumnach tekstowych bez kodowania, przy użyciu zestawu znaków utf8 lub utf8mb4. Wiele? TAk. WordPress przechowuje w ten sposób dane opcji.
Spostrzeżenie 2:Jeśli można go przetłumaczyć na JSON, możesz użyć typu danych JSON w najnowszych wersjach MySQL. Wyszukiwania JSON nadal nie są sargable, ale są ustrukturyzowane.