Как правильно организовать хранение и чтение настроек сайта?
Собственно, разрабатываю сайт на php. Столкнулся с вечным вопросом хранения настроек сайта. Варианты, которые рассматривал: mysql база и ini файлы.
Но вот вопрос, если хранить настройки в базе, то когда происходит чтение из базы, мы совершаем запрос. А если надо прочитать 30 настроек, то будет +30 запросов, что при большой посещалке скажется на производительности.
Или стоит делать запрос в базу один и извлекать все необходимые данные сразу, а потом только их подставлять куда надо?
А если рассматривать ini файлы, то там тоже получается при каждом вызове настройки, необходимо каждый раз читать файл и каждый раз извлекать одно нужное нам поле. Или лучше читать весь файл сразу и извлекать из памяти необходимое? Тогда забивается память на мой взгляд.. как тогда быть? Как правильно организовать настройки и их чтение?
Прошу учитывать изначально хранение тысячу полей в настройках (как в cms это обычно бывает).
Предложу тогда и свой вариант. Храните настройки в сериализованом виде: как только сайт открывается, он проверяет наличие файла (например: settings.dat), если файл найден - читает его и делает unserialize - на выходе получается массив настроек. Если файла нет - делаете запрос в базу (как предлгал @VasiliyIsaichkin) и затем полученный массив настроек сохраняете в файл (например settings.dat) через serialize функцию + при каждом изменении настроек CMS - удаляйте файл settings.dat и он будет снова синхронизирован с БД.
Добрый день! А скажите нормальный ли вариант хранить в БД и при посещении сайта, если в сессии нет настроек - сохранять в сессию, ну и далее брать их с сессии, чтобы не дергать БД
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.