Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL — Base64 kontra BLOB

JSON zakłada utf8, dlatego jest niekompatybilny z obrazami, chyba że są one w jakiś sposób zakodowane.

Base64 jest prawie dokładnie 8/6 razy bardziej obszerny niż binarny (BLOB). Można by argumentować, że jest łatwo dostępny. 3000 bytes staje się około 4000 bytes .

Każdy powinien być w stanie akceptować dowolne 8-bitowe kody, ale nie wszyscy to robią. Base-64 może być najprostszym i ogólnie najlepszym kompromisem, ponieważ nie trzeba mieć do czynienia z 8-bitowymi danymi.

Ponieważ są „małe”, przechowywałbym je w tabeli, a nie w pliku. Przechowałbym je jednak w osobnej tabeli i JOIN przez odpowiedni id kiedy ich potrzebujesz. Dzięki temu zapytania, które nie potrzebują obrazu, działają szybciej, ponieważ nie przekraczają bloków BLOB.

Z technicznego punktu widzenia, TEXT CHARACTER SET ascii COLLATE ascii_bin zrobi, ale BLOB wyjaśnia, że ​​w kolumnie tak naprawdę nie ma żadnego użytecznego tekstu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak poprawnie zapisać dane do bazy danych?

  2. Laravel ma wiele relacji, liczba polubień i komentarzy pod postem

  3. Wybieranie losowych wierszy w MySQL

  4. Rozpakowywanie wywołań bazy danych węzłów

  5. Bardzo trwały /opt/lampp/bin/mysql.server:264:kill:Brak takiego procesu. Xamp/ubuntu 16.04