Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中存储二进制数组_Mysql - Fatal编程技术网

在MySQL中存储二进制数组

在MySQL中存储二进制数组,mysql,Mysql,我有一个数组,叫做A,B。。。十、 Y,Z。虽然表格中有26列会很有趣,但我还是忍不住觉得有更好的方法。我已经考虑过创建第二个表,它的id值是第一个表中的row,数组中项目的id,然后是布尔值,但是它看起来很笨重而且令人困惑 有更好的方法吗?您可以尝试将其存储为TINYBLOB,甚至是无符号INT,但您必须在代码中进行位掩蔽。您可以将其存储为字符串,并使用文本操纵函数(重新)创建数组。简短回答,否。长回答,视情况而定 您可以以多种方式存储二进制数据—滥用数字、使用二进制或VARBINARY、使用

我有一个数组,叫做A,B。。。十、 Y,Z。虽然表格中有26列会很有趣,但我还是忍不住觉得有更好的方法。我已经考虑过创建第二个表,它的id值是第一个表中的row,数组中项目的id,然后是布尔值,但是它看起来很笨重而且令人困惑


有更好的方法吗?

您可以尝试将其存储为TINYBLOB,甚至是无符号INT,但您必须在代码中进行位掩蔽。

您可以将其存储为字符串,并使用文本操纵函数(重新)创建数组。

简短回答,否。长回答,视情况而定

您可以以多种方式存储二进制数据—滥用数字、使用二进制或VARBINARY、使用BLOB或TINYBLOB等。如果数据大小已知,二进制类型通常比BLOB类型更快

然而,关系数据库的设计并不是为了对二进制数据进行任何智能化处理。在我曾经处理的一个项目中,有一个表,其中每个记录都有特定的二进制模式—存储为某种整数—搜索需要大量and、OR、XOR和NOT。它从来没有真正工作得很好,性能很差,它拖累了整个项目。回顾过去,我会采取完全不同的方法

所以,如果你只是想把数据放进去,然后再把它拿出来,那就太好了。如果你想用它来做任何聪明、强硬的事情


其他数据库供应商的情况可能不同。事实上,您是否考虑过使用其他方法代替数据库?某种类型的对象持久性?

可能的数组值是静态的吗

如果是这样,请尝试使用MySQL的SET数据类型