Давайте предположим, что у меня есть массив, как тот, который я разместил ниже, и что мне нужно хранить его в моей базе данных MySQL:Mysql выступления: сериализации против колонн
Array(
"Weight" => "10",
"Height" => "17",
"Usage" => "35"
);
Преамбула:
- Я буду никогда изменение этих значений
- Я буду никогда выполнить запрос на основе этих значений
Короче говоря, мне нужно только магазин и дисплей этот массив как есть. На самом деле мне нужно использовать эти значения для генерации графиков. Теперь я вижу 2 возможных варианта.
Вариант 1: даже если я никогда не буду использовать условие WHERE, ORDER BY, HAVING (...) для этих значений, я храню каждое значение отдельно в выделенном столбце (вес, высота, использование).
Вариант 2: Я создаю единый столбец (stats), где я храню сериализованную версию массива, а затем, чтобы генерировать мои графики, я неэтериализую каждую строку перед ее использованием.
Вопрос: какой лучший подход для хранения этого массива с точки зрения эффективности и производительности?
На мой взгляд, второй подход является лучшим, но допустим, что в процессе участвует много строк и элементов. Я не понимаю, если это быстрее и более неэтериализовать массив из 20 элементов для 100 строк с PHP или прочитать простые значения, хранящиеся в 20 столбцах, учитывая, что мне нужно очень часто и много сэкономить их.
Простой факт, что вам не нужно было бы нестириализовать для создания ваших графиков, если бы вы использовали отдельные столбцы, должно быть достаточно, чтобы оправдать вариант # 1 –
Зачем хранить его в базе данных? Весь смысл хранить материал в базе данных - это то, что вы можете выполнять запросы в/с ним. В противном случае вам лучше устанавливать значения в константе в коде. – Plenka
Я бы всегда выбирал вариант 1 –