在MySQL中存储二进制数组

Tei*_*ion 3 mysql

我有一个名为A,B ... X,Y,Z的值数组.尽管表中有26列我会忍不住觉得有更好的方法.我考虑过创建第二个表,其中第一个表的id为id,数组中项的id,然后是布尔值,但它看起来很笨拙而且令人困惑.

有没有更好的办法?

Mar*_*ing 6

简短的回答,没有.答案很长,这取决于.

您可以通过多种方式存储二进制数据 - 滥用数字,使用BINARY OR VARBINARY,使用BLOB或TINYBLOB等.如果您的数据是已知大小,则BINARY类型通常比BLOB类型更快.

但是,关系数据库不是为使用二进制数据做任何智能操作而设计的.在我曾经工作的项目中,有一个表,其中每个记录具有特定的二进制模式 - 存储为某种整数 - 并且搜索需要大量的AND,OR,XOR和NOT.它从来没有真正发挥得很好,性能很糟糕,并且它使整个项目失效.回顾过去,我会采取完全不同的方法.

因此,如果您只是想放弃数据并再次将其拉出来,那就太好了.如果你想用它来做任何聪明,艰难的事情.

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