2015-11-04 5 views
-1

мне нужно хранить:PHP массив для двоичных данных?

array(1,2,3,4,5); 

в тузде сгусток.

Как преобразовать этот массив в двоичные данные?

+0

целью вниз голосования? –

+1

Ваш вопрос показывает небольшое усилие. – dan08

+0

@ dan08 Если вы проверите изменения, вы увидите, что его вопросы не в том, как хранить файл blob, а в том, почему/как следует хранить больший объем информации ... – Bonatti

ответ

2

Это зависит в основном от того, как вы используете эту информацию. Идентификаторы обычно используются для идентификации ресурса и, следовательно, должны быть уникальными, а не нулевыми и индексируемыми.

В соответствии с этими стандартами не использовать как blob.

В основном потому, что поиск по содержанию медленнее, чем как встроенная переменная. Кроме того, базы данных SQL сортируют содержимое таблицы для обеспечения более быстрых запросов.

Если вам нужно только сохранить информацию, а затем использовать другой идентификатор, чтобы идентифицировать этот ресурс (и их можно легко проанализировать по строкам/цифрам, тогда не используйте blob). Двоичный файл обычно использует 8 байт на символ. Число может содержать одну и ту же информацию, используя меньше полной памяти. Например, 1902334123 (случайная разбивка клавиатуры) использует 10 * 8 = 80 байт на жестком диске, в то время как 32-разрядное целое число со знаком может удерживать его.

Наконец, если то, что вам нужно просто хранить несколько блоков данных, что ваша проблема с последовательным VARCHAR для чтения в виде строки, так как это может решить вашу проблему

+0

Вы подняли некоторые хорошие моменты в отношении памяти, которые я не думал. Я не особо сохраняю значения как json_encoding, потому что он выглядит неряшливым, но кажется, что вы правы, когда речь идет о потреблении памяти. –

+0

Не только потребление памяти (так как плохо используемый код может использовать это или более при хранении VARCHAR), но вы теряете собственные индексы и алгоритм отображения, которые позволяют массивные запросы с множеством возможных единиц сортировать и реагировать как можно меньше информации. Представьте себе 10 тысяч алфавитных отсортированных предложений ... если вы хотите «запросить *, который начинается с x», а в строке от 0 до 500 начинается с v, вам даже не нужно смотреть на них .. но если у вас есть файлы, вам нужно будет открыть каждый из них – Bonatti

0

вы можете конвертировать в формат JSON и хранить в БД :

json_encode($array); 

и когда вы вернетесь из БД:

json_decode($array); 
Смежные вопросы