Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Base64 vs BLOB


JSON assume utf8, portanto, é incompatível com imagens, a menos que elas sejam codificadas de alguma forma.

Base64 é quase exatamente 8/6 vezes mais volumoso que o binário (BLOB). Pode-se argumentar que é facilmente acessível. 3000 bytes torna-se cerca de 4000 bytes .

Todos deveriam ser capaz de aceitar códigos arbitrários de 8 bits, mas nem todo mundo o faz. Base-64 pode ser o melhor compromisso geral e mais simples para não ter que lidar com dados de 8 bits.

Como são "pequenos", eu os armazenaria em uma tabela, não em um arquivo. No entanto, eu os armazenaria em uma tabela separada e JOIN por um id apropriado quando você precisar deles. Isso permite que as consultas que não precisam da imagem sejam executadas mais rapidamente porque não estão passando por cima dos BLOBs.

Tecnicamente, TEXT CHARACTER SET ascii COLLATE ascii_bin faria, mas BLOB torna mais claro que não há realmente nenhum texto utilizável na coluna.