sql >> Database >  >> RDS >> Mysql

MySQL - Base64 versus BLOB

JSON gaat uit van utf8 en is daarom incompatibel met afbeeldingen, tenzij ze op de een of andere manier zijn gecodeerd.

Base64 is bijna precies 8/6 keer zo omvangrijk als binair (BLOB). Je zou kunnen stellen dat het gemakkelijk betaalbaar is. 3000 bytes wordt ongeveer 4000 bytes .

Iedereen moet willekeurige 8-bits codes kunnen accepteren, maar niet iedereen doet dat. Base-64 is misschien wel het eenvoudigste en over het algemeen beste compromis om niet met 8-bits gegevens te hoeven werken.

Aangezien deze "klein" zijn, zou ik ze in een tabel opslaan, niet in een bestand. Ik zou ze echter in een aparte tabel opslaan en JOIN door een geschikte id wanneer je ze nodig hebt. Hierdoor kunnen query's waarvoor de afbeelding niet nodig is, sneller worden uitgevoerd omdat ze niet over de BLOB's gaan.

Technisch gezien, TEXT CHARACTER SET ascii COLLATE ascii_bin zou doen, maar BLOB maakt het duidelijker dat er niet echt bruikbare tekst in de kolom staat.



  1. Query die een hiërarchische lijst van typen triggergebeurtenissen in SQL Server retourneert

  2. Controleer of alle waarden in een array in een databasekolom voorkomen

  3. QUERIES loggen zonder INDEX - MySQL

  4. Gebruik de IN-richtlijn om te zoeken met een voorbereide verklaring