JSON mengasumsikan utf8, karenanya tidak kompatibel dengan gambar kecuali jika dikodekan dengan cara tertentu.
Base64 hampir persis 8/6 kali lebih besar dari biner (BLOB). Orang bisa berargumen bahwa itu mudah terjangkau. 3000 bytes
menjadi sekitar 4000 bytes
.
Semua orang harus dapat menerima kode 8-bit sewenang-wenang, tetapi tidak semua orang melakukannya. Base-64 mungkin merupakan kompromi yang paling sederhana dan terbaik secara keseluruhan karena tidak harus berurusan dengan data 8-bit.
Karena ini "kecil", saya akan menyimpannya dalam tabel, bukan file. Namun, saya akan menyimpannya di tabel terpisah dan JOIN
dengan id
yang sesuai ketika Anda membutuhkan mereka. Hal ini memungkinkan kueri yang tidak memerlukan gambar untuk berjalan lebih cepat karena tidak melangkahi BLOB.
Secara teknis, TEXT CHARACTER SET ascii COLLATE ascii_bin
bisa, tapi BLOB
memperjelas bahwa sebenarnya tidak ada teks yang dapat digunakan dalam kolom.