Дмитрий Сергеевич (axshavan) wrote,
Дмитрий Сергеевич
axshavan

Category:

Кэширование запросов к БД

По следам Степана Никитовича (stepank) я соорудил конструкцию, позволяющую кэшировать запросы к базе данных. Не все, а только селекты - остальной кэшировать как бы и нельзя вовсе. Механизм такой, значит: класс по работе с БД, когда ему говорят: " а ну-ка, выбери мне это!" делает из "этого" хэш, а затем смотрит в папочке с кэшем, есть ли файлик с таким именем. А до этого предварительно был сделан запрос show table status, чтоб узнать время последнего обновления таблиц. Так вот, если у найденного файлика время изменения больше, чем время изменения таблицы, то запрос к БД не делается, а результат вытаскивается из файла. Там он лежит в сериализованном виде. Ну в противном случае этот файл делается из результата выполненного запроса.

Вроде всё просто, ну у меня три, значит, вопроса, над которыми я ломаю голову.
Во-первых, не может ли десереализация строки в массив занимать времени больше, чем запрос к базе данных?
Во-вторых, возможна ситуация (чисто гипотетически), что хэши разных запросов совпадут. Это, конечно, маловероятно, но было бы неприятно, если такое произойдет.
В-третьих, show table status для InnoDB не показывает время последнего изменения таблиц! Я не знаю, как работает этот запрос, но, скорее всего, он смотрит дату изменения файла с данными таблицы. В иннодб такого файла нет, все данные всех таблиц перемешаны и размазаны по логу транзакций. Как узнать дату последнего изменения таблиц в этом случае, я не знаю.
Tags: web
Subscribe

  • Про "Падение Гипериона"

    Дочитал "Падение Гипериона" Дэна Симмонса. Без сомнений, творение гениальное, но я поставил ему только четыре звёздочки из пяти, за какую-то хуйню с…

  • Masopust

    Вообще очень интересно - Русская Православная Церковь полагает себя единственно правильным христианством и игнорирует все экуменистические…

  • Всего лишь график

    Оригинал записи http://blog.axshavan.ru/2013/06/just-chart.html

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 18 comments

  • Про "Падение Гипериона"

    Дочитал "Падение Гипериона" Дэна Симмонса. Без сомнений, творение гениальное, но я поставил ему только четыре звёздочки из пяти, за какую-то хуйню с…

  • Masopust

    Вообще очень интересно - Русская Православная Церковь полагает себя единственно правильным христианством и игнорирует все экуменистические…

  • Всего лишь график

    Оригинал записи http://blog.axshavan.ru/2013/06/just-chart.html