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.