За последние 24 часа нас посетил 20881 программист и 1138 роботов. Сейчас ищут 682 программиста ...

Файлы или БД?

Тема в разделе "Прочие вопросы по PHP", создана пользователем astroworld, 9 фев 2019.

  1. astroworld

    astroworld Активный пользователь

    С нами с:
    30 авг 2008
    Сообщения:
    16
    Симпатии:
    2
    На сайте у каждого зарегистрированного пользователя имеется некий набор своих собственных переменных. Около 20 переменных. При авторизации их нужно использовать на части страниц.
    Как лучше реализовать хранение и использование этих данных:
    1. В файле для каждого пользователя. Название файла хранится в базе, при авторизации идет в переменную сессии, а при необходимости использования этот файл подгружается.
    2. В таблице БД (вместе с другими данными пользователями или в отдельной таблице). При необходимости использования делается запрос к БД.

    Как лучше реализовать? В каком варианте меньше будет нагрузка, как быстрее будет работать?
    P.S. Общее количество пользователей вероятно в районе 20-30 тыс., активных будет меньше, авторизаций в сутки ожидаю в районе 100-700 :) Сайт на хорошем хостинге (но не свой сервер).
     
  2. ElisDN

    ElisDN Активный пользователь

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Если все равно делается запрос в базу, то лучше сразу извлекать эти 20 переменных, чем название файла.
    Если эти переменные не используются для создания связей между данными, то возможно их лучше хранить в чем-то вроде Redis.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Не парься с преждевременной оптимизацией. Пользовательский профиль повсеместно хранится в таблице БД.
     
  5. astroworld

    astroworld Активный пользователь

    С нами с:
    30 авг 2008
    Сообщения:
    16
    Симпатии:
    2
    Спасибо за ответы. Решил использовать БД, но скорее всего будет отдельная таблица (связанная по id пользователя), потому как в будущем, возможно, у каждого пользователя может быть больше, чем один набор этих переменных.
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Те параметры по которым не предполагается поиск, можно смело хранить в сериализованном виде в текстовом поле.