Json objects in the database are great until you want to request its contents.
However, the type of storage is worth discussing. I would either compress the entire ROW in InnoDB with (ROW_FORMAT = COMPRESSED KEY_BLOCK_SIZE = 8), or execute it in an application, compress only JSON and put it in binary format.
With the first option (the application handles TEXT, MySQL handles compression), I would prefer the json column to have a text type (TEXT, LONGTEXT, MEDIUMTEXT, TINYTEXT).
With the second version (the application handles compression, MySQL only sees the binary file), I would, of course, use the blob format (TINYBLOB, BLOB, MEDIUMBLOB or LONGBLOB).
Both options are valid. It depends on your personal priorities. Transferring compression to an application is an easy way to scale, but complexity. Although MySQL takes care of compression, it is transparent and easy to configure, but it puts some pressure on the processor (which, by the way, is rarely a bottleneck for databases).
source share