когда использовать базу данных для хранения сеанса в PHP

Когда лучше всего использовать базу данных в качестве хранилища сеансов в PHP? Я знаю, что 1 экземпляр будет, когда я разделяю нагрузку запроса на несколько серверов, мне нужно будет поддерживать состояние сеанса на этих серверах.

Статья, которую я сейчас читаю, http://onlamp.com/pub/a/php/excerpt/webdbapps_8/index.html?page=2 говорит

Использование файлов в качестве хранилища сеансов подходит для большинства приложений, в которых количество одновременных сеансов ограничено.

Я не понимаю, почему количество одновременных сеансов должно влиять на предпочтительное хранилище сеансов.

Есть ли другие причины, по которым я должен хранить данные сеанса в базе данных?


person kayfun    schedule 25.03.2012    source источник


Ответы (1)


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

Интерфейсы для взаимодействия с данными в файлах также не так оптимизированы, как интерфейсы, скажем, MySQL - MySQL создан для такого рода вещей, а отдельные файлы - нет.

Еще одна проблема - это параллелизм - базы данных справятся с этим за вас, если разные пользователи вашего веб-сайта одновременно пытаются читать и записывать данные - это происходит чаще по мере увеличения пользовательской базы. Одновременное выполнение этих задач возможно с базой данных, но намного сложнее с хранением информации в файлах. В конечном итоге вам придется программировать какой-то код синхронизации, и это может стать беспорядочным.

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

person Datalore    schedule 25.03.2012