Мне нужно хранить в таблице MySQL длинные битовые строки, которые могут быть длиной до 32768 бит. Необходимость этих данных не требуется индексировать или искать в полном объеме в любое время. Если я правильно прочитал, этот размер должен быть хорошо как в моем max_packet_size, так и в пределе размера строки @ 65k.Каков наиболее эффективный тип данных MySQL для длинных битовых строк?
В идеале я хотел бы хранить строки (и ВСТАВИТЬ их) в формате 0b, но это не является обязательным требованием ... все, что даст мне существенно 1: 1 данные на диске, было бы здорово.
BLOB-файлы, похоже, недостаточно хорошо выполняются, поскольку строка, состоящая только из единиц и нулей ('010101010101'), не отличается от обычного текста и стоит мне L байтов + 2. BIT() будет идеально , но ограничивается только максимальной длиной 64 бит.
Хотя значительная часть данных (90% +) была бы достаточно представлена в неподписанном Bigint, оставшиеся 10% строк заставляют меня находить более элегантное решение, чем разделение их логически (т. Е. Поиск вторичной таблицы if не найден в первой, вторичной таблице с использованием BLOB для оставшихся 10% строк и т. д.).
Дополнительный бонус будет любого типа, который разрешает побитовые операции, но если нет, это также легко сделать за пределами сервера MySQL.
Каков наиболее эффективный тип данных для этой цели?
Я также изучал varbinary, но в соответствии с [требованиями к хранилищу] (http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html) не varbinary (32768) все равно стоил мне 1 байт за бит моей битовой строки ...или я должен ожидать, что это так же оптимизировано, как это может быть для строк, которые долго? – hexparrot
Nevermind, я понимаю ваше предложение: каждый бит в varbinary (4096) вместо этого будет символом, который бит-бит-бит представляет 8 символов моей строки, и я просто перебираю строку varbinary для определения этих значений и восстановления окончательной строки бита , Это определенно идеально, так как я более чем готов торговать вычислительным временем на клиенте для хранения и времени доступа на сервере. Спасибо! – hexparrot