Хранилище в Данных Сессии по сравнению с хранилищем в Базе данных Sql для временных данных

Сначала вы должны создать один migration файл для вашей таблицы, например:

public function up()
    {
        Schema::create('test', function (Blueprint $table) {
            $table->increments('id');
            $table->string('fname',255);
            $table->string('lname',255);
            $table->rememberToken();
            $table->timestamps();
        });
    }

После создания папки test в папке migrations , затем вновь созданный ] перенос перемещается / копируется в папку test и запускается под командой в вашем терминале / cmd , например:

php artisan migrate --path=/database/migrations/test/
11
задан Toby Allen 27 June 2011 в 14:06
поделиться

4 ответа

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

Если вы читаете и записываете эти данные при каждом запросе, просто используйте переменные $ _SESSION, накладные расходы на подключение, запросы и обновление базы данных не будут быстрее, чем по умолчанию $ _SESSION.

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

повторное чтение и запись этих данных при каждом запросе, просто используйте переменные $ _SESSION, накладные расходы на подключение, запросы и обновление базы данных не будут быстрее, чем по умолчанию $ _SESSION.

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

повторное чтение и запись этих данных при каждом запросе, просто используйте переменные $ _SESSION, накладные расходы на подключение, запросы и обновление базы данных не будут быстрее, чем по умолчанию $ _SESSION.

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

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

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

21
ответ дан 3 December 2019 в 03:36
поделиться

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

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

2
ответ дан 3 December 2019 в 03:36
поделиться

Что будет более эффективным, будет зависеть от объема данных, которые вы хотите сохранить, и от того, что вы планируете делать с временными данными. Я иногда сохранял 5 мегабайт данных сеанса в файловом хранилище, и это было ужасным убийством производительности. Но 5 мегабайт состояния - это ужасно много, и вам действительно не стоит этого делать.

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

] Тем не менее, если данные не соответствуют характеристикам пользовательского сеанса, вам не следует использовать сеансы, а вместо этого использовать какой-либо объект модели.

1
ответ дан 3 December 2019 в 03:36
поделиться

Сеансы PHP быстрее, чем доступ к БД. Но у сеансов PHP есть некоторые известные проблемы .

Вы можете взглянуть на memcached, если хотите действительно быстрое время доступа, в то же время избегая ловушек управления сеансами PHP.

0
ответ дан 3 December 2019 в 03:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: