Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
 Стоит ли всякие справочники в PHP держать сериализованными?  [new]
kormot
Member

Откуда:
Сообщений: 204
Добрый день Уважаемые!

У меня такой вопрос:
Если к примеру прога на php формирует страничку и тягает при каждой генерации из БД значения условно "справочные". Т.е. они есть на страничке практически всегда и одни и те же. Имеет ли смысл такие справочники например при старте сессии получить, сериализовать и в сессии хранить чтобы не обращаться к ним в БД постоянно?
30 ноя 18, 07:31    [21749329]     Ответить | Цитировать Сообщить модератору
 Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1568
имеет, только не в сессии, а кеше, доступно для всех сессиий
30 ноя 18, 08:22    [21749351]     Ответить | Цитировать Сообщить модератору
 Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
kormot
Member

Откуда:
Сообщений: 204
Спасибо Уважаемый!
30 ноя 18, 08:32    [21749361]     Ответить | Цитировать Сообщить модератору
 Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
kormot
Member

Откуда:
Сообщений: 204
Тогда в эту же тему ещё вопрос, а таким же способом если хранить в кеше всякие результаты запросов, но на основе этих запросов в программе формируются если объекты, то предпочтительней какой вариант хранения?
  • Хранить сами сериализованные объекты в БД. Т.е.
    $data = cache::GET('Entity.ID');
    $eObj = unserialize($data);
    

  • Хранить массив данных из которых формируется объект. И при запросе экземпляра объекта использовать эти данные?
    Class Entity {
       public function __construct($entityID){
              $data = cache::GET('Entity.'.$entityID);
              $this->objData = $data;
       }
    }
    
    $eObj = new Entity(...);
    

    Имеется в виду вопрос о том, в кэше стоит ли хранить прямо сериализованные объекты или лучше только наборы данных не сложней массива?
  • 30 ноя 18, 09:01    [21749390]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    vkle
    Member

    Откуда: Самара
    Сообщений: 14624
    Два примера не равноценны по сути. Во втором случае устанавливается лишь одно свойство объекта, но когда свойств будет хотя бы два, картина станет более понятной.

    Хранить лучше в максимально готовом к употреблению виде, чтобы после чтения из кэша требовалось минимум преобразований. ИМХО конечно.
    30 ноя 18, 09:30    [21749417]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    Hett
    Member

    Откуда: Бийск, Новосибирск
    Сообщений: 13505
    Взять готовую ORM в которой реализовано кэширование и не изобретать велосипеды?
    30 ноя 18, 10:13    [21749501]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    Дегтярев Евгений
    Member

    Откуда: Барнаул
    Сообщений: 1568
    Hett
    Взять готовую ORM в которой реализовано кэширование и не изобретать велосипеды?

    вполне себе совет
    -----

    $data = cache::GET('Entity.ID');
    $eObj = unserialize($data);
    

    не плохо бы проверить результат cache::GET
    30 ноя 18, 10:51    [21749583]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    полудух
    Member

    Откуда: планета орков, г.Зверополис
    Сообщений: 556
    kormot
    Добрый день Уважаемые!

    У меня такой вопрос:
    Если к примеру прога на php формирует страничку и тягает при каждой генерации из БД значения условно "справочные". Т.е. они есть на страничке практически всегда и одни и те же. Имеет ли смысл такие справочники например при старте сессии получить, сериализовать и в сессии хранить чтобы не обращаться к ним в БД постоянно?

    вообще-то по ним поиск и джойны идут
    не надо их сериализовывать
    30 ноя 18, 13:46    [21749939]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    kormot
    Member

    Откуда:
    Сообщений: 204
    Так джойны и поиск никуда не деваются же. Сериализация - это избыточность для избегания лишних обращений к БД при запросе объекта. Условно: Объект изменился в БД, строится его сериализованый вид и сохраняется в БД.
    2 дек 18, 22:38    [21751620]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    Hett
    Member

    Откуда: Бийск, Новосибирск
    Сообщений: 13505
    Шта?
    Вы все же орм готовые посмотрели бы хоть.
    2 дек 18, 23:07    [21751633]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    полудух
    Member

    Откуда: планета орков, г.Зверополис
    Сообщений: 556
    kormot
    Так джойны и поиск никуда не деваются же. Сериализация - это избыточность для избегания лишних обращений к БД при запросе объекта. Условно: Объект изменился в БД, строится его сериализованый вид и сохраняется в БД.

    а, ну для сессии то можно, я невнимательно прочитал
    сам в сессии храню сериализованно
    3 дек 18, 07:10    [21751727]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    kormot
    Member

    Откуда:
    Сообщений: 204
    Блин, эти надстройки и фреймворки.... Я наверное фрик или просто ненормальный, но не могу я ими пользоваться. Просто рука не поднимается код с их помощью. Я конечно сделаю очередную попытку поработать с доктриной, но предыдущие разы не взлетело.
    3 дек 18, 07:13    [21751728]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    Hett
    Member

    Откуда: Бийск, Новосибирск
    Сообщений: 13505
    полудух
    kormot
    Так джойны и поиск никуда не деваются же. Сериализация - это избыточность для избегания лишних обращений к БД при запросе объекта. Условно: Объект изменился в БД, строится его сериализованый вид и сохраняется в БД.

    а, ну для сессии то можно, я невнимательно прочитал
    сам в сессии храню сериализованно


    Сессия и так при записи сериализуется, зачем дополнительно еще это делать?
    3 дек 18, 08:38    [21751741]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    полудух
    Member

    Откуда: планета орков, г.Зверополис
    Сообщений: 556
    Hett
    полудух
    пропущено...

    а, ну для сессии то можно, я невнимательно прочитал
    сам в сессии храню сериализованно


    Сессия и так при записи сериализуется, зачем дополнительно еще это делать?

    да ладно? а session_encode() зачем?
    а если у меня там опасные данные?
    3 дек 18, 11:36    [21751852]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    Hett
    Member

    Откуда: Бийск, Новосибирск
    Сообщений: 13505
    полудух
    Hett
    пропущено...


    Сессия и так при записи сериализуется, зачем дополнительно еще это делать?

    да ладно? а session_encode() зачем?
    а если у меня там опасные данные?


    Опасные? Типа пораниться об них можно или что?
    Что делает конкретно этот метод - написано по ссылке которую вы дали.
    3 дек 18, 11:52    [21751869]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    Дегтярев Евгений
    Member

    Откуда: Барнаул
    Сообщений: 1568
    полудух
    да ладно? а session_encode() зачем?
    а если у меня там опасные данные?

    Картинка с другого сайта.
    3 дек 18, 13:04    [21751953]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    полудух
    Member

    Откуда: планета орков, г.Зверополис
    Сообщений: 556
    Hett
    Что делает конкретно этот метод - написано по ссылке которую вы дали.

    ага
    автор
    session_encode() возвращает сериализованную строку, содержащую данные текущей сессии, хранящиеся в суперглобальном массиве $ _SESSION.

    если он сериализует содержимое сессии, значит в сессии НЕ сериализованное значение, не?
    3 дек 18, 15:50    [21752184]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    Hett
    Member

    Откуда: Бийск, Новосибирск
    Сообщений: 13505
    полудух,

    если говорить о хранении данных: то данные сессии хранятся серилизованными - как вы их еще на диск/в бд схораните?
    Во рантайме данные конечно представлены в первоначальном (не сериализованном виде).

    Только (де) и сериализацией разработчику заниматься в 99.9% случае не нужно.
    Ну вы хоть понимаете для чего нужна эта функция?
    3 дек 18, 16:00    [21752192]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    полудух
    Member

    Откуда: планета орков, г.Зверополис
    Сообщений: 556
    Hett
    данные сессии хранятся серилизованными - как вы их еще на диск/в бд схораните?

    аргумент.
    3 дек 18, 16:46    [21752241]     Ответить | Цитировать Сообщить модератору
     Re: Стоит ли всякие справочники в PHP держать сериализованными?  [new]
    полудух
    Member

    Откуда: планета орков, г.Зверополис
    Сообщений: 556
    Hett
    Только (де) и сериализацией разработчику заниматься в 99.9% случае не нужно.

    грёбаный пхп
    совсем забаловал нас бездельем Картинка с другого сайта.
    3 дек 18, 16:47    [21752243]     Ответить | Цитировать Сообщить модератору
    Все форумы / PHP, Perl, Python Ответить