JSON předpokládá utf8, a proto je nekompatibilní s obrázky, pokud nejsou nějakým způsobem zakódovány.
Base64 je téměř přesně 8/6 krát objemnější než binární (BLOB). Někdo by mohl namítnout, že je to snadno dostupné. 3000 bytes bude mít asi 4000 bytes .
Všichni by měli být schopen přijímat libovolné 8bitové kódy, ale ne každý to dělá. Base-64 může být nejjednodušší a celkově nejlepší kompromis pro to, že se nemusíte zabývat 8bitovými daty.
Vzhledem k tomu, že jsou to "malé", uložil bych je do tabulky, ne do souboru. Uložil bych je však do samostatné tabulky a JOIN pomocí vhodného id když je potřebujete. To umožňuje, aby dotazy, které nepotřebují obrázek, běžely rychleji, protože nepřekračují objekty BLOB.
Technicky vzato, TEXT CHARACTER SET ascii COLLATE ascii_bin by to šlo, ale BLOB objasňuje, že ve sloupci skutečně není žádný použitelný text.