Где и как хранить данные? извечный вопрос программистов.. и однозначного ответа на него нет.. и пожалуй, не будет.. т.к. каждый из способов хорош в тех или иных условиях..
Все способы хранения данных можно классифицировать по..
• по месту хранения данных:
– локальные файлы,
– таблицы базы данных.
нужно отметить, что таблицы базы данных также хранятся в файлах.. разница лишь в движке, который обрабатывает данные..
• по способу представления данных:
– непосредственные данные (понятные человеку),
– сериализованные данные (понятные машине).
По каким критериям стоит оценивать тот или иной способ хранения данных?
На ум приходят, например, такие критерии:
– простота реализации,
– расширяемость сруктуры,
– быстрота доступа к данным,
– быстрота выборки данных,
– объем данных,
– ручной доступ к данным.
степень важности критериев каждый устанавливает свою..
Применительно к веб-программированию (PHP, MySQL) можно указать следующие способы хранения данных:
1. Данные хранятся в таблицах базы данных в непосредственном (сыром) виде..
+ быстрота доступа и выборки данных, большой объем хранимых данных, возможность ручного доступа к данным..
нужно заметить, что быстрота доступа к данным зависит от множества факторов: от структуры таблицы, типов и размеров полей, по которым ведется выборка, от наличия индексов текстовых полей..
для односложных разовых запросов следует предусмотреть систему кеширования: хранить результат запроса в отдельной таблице или в локальном файле..
– плохая расширяемость структуры..
для изменения структуры данных придется изменять структуру и самой таблицы, менять логику запросов..
2. Данные хранятся в таблицах базы данных в сериализованном виде..
+ быстрота доступа к данным, большой объем хранимых данных, легкая расширяемость структуры данных..
сериализованные данные представляют собой машинно-понятное представление данных: будь то числа, строки, массивы или объекты.. изменение структуры данных не повлияет на способ их хранения в таблице..
– сложность выборки, невозможность ручного доступа..
для осуществления выборки придется десериализовать данные, т.е. возвращать их в начальное состояние.. что влечет за собой существенные временные затраты..
3. Данные хранятся в локальных файлах в непосредственном или сериализованном виде..
+ быстрота доступа и выборки данных, легкая расширяемость структуры данных..
все данные из файла загружаются в оперативную память, и к ним может быть получен непосредственный доступ.. выборки данных могут быть любого уровня сложности, а быстрота выполнения выборок при этом будет намного выше по сравнению с использованием базы данных..
– ограничение на объем хранимых и считываемых данных..
объем данных хранимый в оперативной памяти ограничен настройками php и настройками самого сервера..
В общих словах, можно сказать, что для хранения больших объемов информации безусловно нужно использовать базу данных.. но для хранения небольших объемов информации, вполне сойдут и локальные файлы..