Ada*_*tan 2 mysql serialization blob
我想在 MySQL 数据库中存储一些protobuf对象。这些对象是在 Java 应用程序中创建的。该对象带有文本类型标识符和时间戳。
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | mediumint(9) | NO | PRI | NULL | auto_increment |
| type | varchar(30) | NO | MUL | NULL | |
| timestamp | date | NO | MUL | NULL | |
| pixel_data | ? | NO | MUL | NULL | |
+------------+--------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)
的数据类型应该是什么pixel_data
?
我最好的猜测是BLOB
或TEXT
。
TEXT
和 和有BLOB
什么区别?哪个更适合 Javaprotobuf
对象序列化?由于 Java 使用字节流进行序列化,因此我认为 BLOB 更好,但我没有找到任何参考资料。TINY
,MEDIUM
或LONG
)?较大尺寸会浪费多少空间?BLOB
是正确的,因为这是一个二进制字符串。TEXT
是字符串,但protobuf不是字符数据;所以使用某种BLOB
至于TINY
/ MEDIUM
/ LONG
; 你的数据有多大?
TINYBLOB
: 最大 255 字节BLOB
: 最大 65,535 字节MEDIUMBLOB
: 最大 16,777,215 字节LONGBLOB
: 最大 4,294,967,295 字节在少数情况下TINYBLOB
可能就足够了,特别是如果没有任何字符串(特别是名称/地址会占用空间)。在大多数情况下,MEDIUMBLOB
可能是一个公平的猜测。