Binary Data Types
Data Type |
Differences Compared with MySQL |
---|---|
BINARY[(M)] |
For other differences, see the note below the table.
NOTE:
Due to the differences between GaussDB and MySQL in BINARY fillers, GaussDB and MySQL have different performance in scenarios such as operator comparison calculation, character string-related system function calculation, index matching, and data import and export. For details about the specific difference scenarios, see the examples in this section. |
VARBINARY(M) |
Character set: The default character set is the initialized character set of the database. For MySQL, the default character set is BINARY. For other differences, see the note below the table. |
TINYBLOB |
For details about the differences, see the note below the table. |
BLOB |
For details about the differences, see the note below the table. |
MEDIUMBLOB |
For details about the differences, see the note below the table. |
LONGBLOB |
Value range: a maximum of 1 GB – 512 bytes. MySQL supports a maximum of 4 GB – 1 byte. |
BIT[(M)] |
Output formats:
For other differences, see the note below the table. |

- For unescapable binary or hexadecimal strings, MySQL 5.7 outputs undisplayable strings; MySQL 8.0 outputs a hexadecimal result in the format of 0x; GaussDB outputs a hexadecimal result in the format of multiple \x.
- For the TINYBLOB, BLOB, MEDIUMBLOB, and LONGBLOB types:
- Primary key: When creating a primary key, you must specify the prefix length in MySQL, but you cannot specify the prefix length in GaussDB.
- Index: MySQL supports only prefix indexes. GaussDB supports all index methods.
- Foreign key: MySQL does not support any of these types to be the referencing column or referenced column of a foreign key, but GaussDB supports.
Example:
-- GaussDB m_db=# CREATE TABLE test_blob(a blob); CREATE TABLE m_db=# INSERT INTO test_blob VALUES(0x1); INSERT 0 1 m_db=# INSERT INTO test_blob VALUES(0x111111); INSERT 0 1 m_db=# INSERT INTO test_blob VALUES(0x61); INSERT 0 1 m_db=# SELECT * FROM test_blob; a -------------- \x01 \x11\x11\x11 a (3 rows) m_db=# DROP TABLE test_blob; DROP TABLE -- MySQL 5.7 mysql> CREATE TABLE test_blob(a blob); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO test_blob VALUES(0x1); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO test_blob VALUES(0x111111); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO test_blob VALUES(0x61); Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM test_blob; +------+ | a | +------+ | | | | | a | +------+ 3 rows in set (0.00 sec) mysql> DROP TABLE test_blob; Query OK, 0 rows affected (0.00 sec) -- MySQL 8.0 mysql> CREATE TABLE test_blob(a blob); Query OK, 0 rows affected (0.08 sec) mysql> INSERT INTO test_blob VALUES(0x1); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO test_blob VALUES(0x111111); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO test_blob VALUES(0x61); Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM test_blob; +------------+ | a | +------------+ | 0x01 | | 0x111111 | | 0x61 | +------------+ 3 rows in set (0.00 sec) mysql> DROP TABLE test_blob; Query OK, 0 rows affected (0.04 sec)
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.