Description\n-----------\n\nA BLOB is a binary large object that can hold a variable amount of data. The four BLOB types are\n\n TINYBLOB,\n BLOB,\n MEDIUMBLOB, and\n LONGBLOB.\n\nThese differ only in the maximum length of the values they can hold.\n\nThe TEXT types are\n\n TINYTEXT,\n TEXT,\n MEDIUMTEXT, and\n LONGTEXT.\n JSON (alias for LONGTEXT)\n\nThese correspond to the four BLOB types and have the same maximum lengths and storage requirements.\n\nBLOB and TEXT columns can have a DEFAULT value.\n\nIt is possible to set a unique index on columns that use the BLOB or TEXT data types.\n\nHandling Large Data via APIs\n\nWhen working with very large BLOB or TEXT values, the data may exceed the limit set by the max_allowed_packet system variable. To avoid this—and to reduce memory consumption on the client—most MariaDB connectors allow you to "stream" data in chunks.\n\n Connector/C: Use mysql_stmt_send_long_data() to send parameter data in pieces before calling mysql_stmt_execute(). This bypasses max_allowed_packet  limits and reduces the peak memory footprint (RSS) of the application.\n Connector/J: Use PreparedStatement.setBinaryStream() (for BLOB) or PreparedStatement.setCharacterStream() (for TEXT).\n Protocol: These APIs utilize the COM_STMT_SEND_LONG_DATA command, which appends data to a parameter on the server side.\n\nTechnical Rules for C/C++\n\n 0-Based Indexing: Parameter numbering starts at 0.\n The  is_null Flag: This must be 0; if set to nonzero, the server may discard the streamed data.\n Resetting: Use  mysql_stmt_reset() to clear all accumulated long data on the server if you need to abort or retry.\n Chunk Size: A practical performance "sweet spot" is between 64 KB and 1 MB per chunk.\n\nURL: https://mariadb.com/docs/server/reference/data-types/string-data-types/blob-and-text-data-types