Запилить статический кэш для INNER JOIN
В общем разрабатываю движек БД на ABQ(array based queries). Запилен статический JSON кэш для запросов типа select * путем сканирования MD5 всей таблицы и последующей сверки с файлом статики.
Теперь планирую написать API для JOIN запросов, но тут сразу вопрос в реализации кэша. У меня при любых изменениях DBX создает хэш таблицу в которую сразу после change пишет значение MD5 связанной таблицы и это же значение используется в файле статики JSON: если чексуммы сошлись, то все данные запроса к БД берутся из статики.:agree: Как сделать такое же более грамотно для JOIN? Вот пример: Код:
SELECT * FROM revolver__nodes, revolver__users WHERE revolver__nodes.field_user = revolver__users.field_nickname Делаем кэш и присваиваем ему время жизни. Херовый вариант так как при появлении нового контента и комментариев он не обновиться сразу же, а контролировать обе таблицы не выходит.:-E Вариант 2: Делаем снимок MD5 обоих таблиц и проверяем эти снимки перед самим JOIN. Вариант лучше так как хэш таблицы уже имеются и остается только создать новый статический файл на чанках и проверять суммы у него.:victory: Вариант 3: Предложите еще варианты как это можно реализовать грамотно. Код библиотеки: https://github.com/xShiftx/Revolver_DBX |
Часовой пояс GMT +3, время: 22:00. |