在MySQL中存储二进制数组
我有一个数组,叫做A,B。。。十、 Y,Z。虽然表格中有26列会很有趣,但我还是忍不住觉得有更好的方法。我已经考虑过创建第二个表,它的id值是第一个表中的row,数组中项目的id,然后是布尔值,但是它看起来很笨重而且令人困惑在MySQL中存储二进制数组,mysql,Mysql,我有一个数组,叫做A,B。。。十、 Y,Z。虽然表格中有26列会很有趣,但我还是忍不住觉得有更好的方法。我已经考虑过创建第二个表,它的id值是第一个表中的row,数组中项目的id,然后是布尔值,但是它看起来很笨重而且令人困惑 有更好的方法吗?您可以尝试将其存储为TINYBLOB,甚至是无符号INT,但您必须在代码中进行位掩蔽。您可以将其存储为字符串,并使用文本操纵函数(重新)创建数组。简短回答,否。长回答,视情况而定 您可以以多种方式存储二进制数据—滥用数字、使用二进制或VARBINARY、使用
有更好的方法吗?您可以尝试将其存储为TINYBLOB,甚至是无符号INT,但您必须在代码中进行位掩蔽。您可以将其存储为字符串,并使用文本操纵函数(重新)创建数组。简短回答,否。长回答,视情况而定 您可以以多种方式存储二进制数据—滥用数字、使用二进制或VARBINARY、使用BLOB或TINYBLOB等。如果数据大小已知,二进制类型通常比BLOB类型更快 然而,关系数据库的设计并不是为了对二进制数据进行任何智能化处理。在我曾经处理的一个项目中,有一个表,其中每个记录都有特定的二进制模式—存储为某种整数—搜索需要大量and、OR、XOR和NOT。它从来没有真正工作得很好,性能很差,它拖累了整个项目。回顾过去,我会采取完全不同的方法 所以,如果你只是想把数据放进去,然后再把它拿出来,那就太好了。如果你想用它来做任何聪明、强硬的事情
其他数据库供应商的情况可能不同。事实上,您是否考虑过使用其他方法代替数据库?某种类型的对象持久性?可能的数组值是静态的吗 如果是这样,请尝试使用MySQL的SET数据类型