sql >> Database teknologi >  >> RDS >> Mysql

Bedste måde at gemme en base64-kodet værdi i MySQL DB?

Samlingen gør kun en forskel, hvis du har brug for at ORDER BY eller søg i kolonnen. Disse base64-kodede elementer vil sandsynligvis ikke blive søgt eller sorteret.

Hvis dine kodede elementer garanteres at være mindre end 64K bytes lange, skal du definere din kolonne sådan her:

   `columnname` TEXT CHARACTER SET ascii,

Dette er præcis, hvad der er nødvendigt for en base64-kodet variabel; kodningsprocessen forvandler alt til ASCII, der kan vises.

Hvis emnerne er mindre end 16 megabyte lange, men nogle vil være længere end 64k, skal du bruge MEDIUMTEXT i stedet for TEXT .

Rediger år senere.

Den OQ-kodede streng, afkodet, er et serialiseret php-objekt:

a:2:{s:20:"Type_of_organisation";s:20:"Member of Parliament";s:8:"Postcode";s:7:"PE1 1JA";}

Observation 1:mange af disse ting bliver gemt i tekstkolonner uden at kode det, ved hjælp af utf8 eller utf8mb4 tegnsættet. Masser? Ja. WordPress gemmer indstillingsdata på denne måde.

Observation 2:Hvis det kan oversættes til JSON, kan du bruge JSON-datatypen i nyere versioner af MySQL. JSON-søgninger er stadig ikke sargerbare, men de er strukturerede.




  1. Valg af flere kolonner/felter i MySQL underforespørgsel

  2. SQL-forespørgsel, vælg kun hvis kolonnen ikke er null ellers skal du ikke vælge

  3. Hent tegnet mellem de første 2 specialtegn i SQL

  4. Hvad er forskellen mellem UNIQUE, UNIQUE KEY og CONSTRAINT 'navn' UNIQUE?