Показать сообщение отдельно
  #10 (permalink)  
Старый 06.07.2018, 23:13
Аватар для xShift
Профессор
Отправить личное сообщение для xShift Посмотреть профиль Найти все сообщения от xShift
 
Регистрация: 22.11.2016
Сообщений: 212

laimas, тщательно протестировал.

Вот пример query для создания хэша:

выполняется при update, insert, delete и выставляет флаг для следующего

Цитата:
$SQL = 'CHECKSUM TABLE `'. self::$sql_hash_table .'`;';
выполняется, если предыдущее выставило флаг

Цитата:
$SQL = 'INSERT INTO `revolver__hash` (`field_id`, `field_'. explode('__', self::$sql_hash_table)[1] .'`) VALUES (\'1\', \''. self::$sql_actual_hash .'\')
ON DUPLICATE KEY UPDATE `field_id`=\'1\', `field_'. explode('__', self::$sql_hash_table)[1] .'`=\''. self::$sql_actual_hash .'\';';
дальше таблица пишется в файл полностью и к ней лепится метка self::$sql_actual_hash.

Запускается процесс и первым делом выставляется define('cache_hashe', [hashes] );

А дальше сверяем со статикой и если что перевыгружаем данные, тут же рендерим и обновляем статический кэш.

Каждая нужная таблица - отдельный файл.

Таким образом не нужны никакие метки протухания и планировщики.

Весь класс пока выложить не могу - еще нужна обкатка.

Мемкэш мне не нужен - это зависимости модуля и как правило 'залипание'.
Кэш есть и у самой БД внутри - это я знаю.
Кэш шаблонизатора - это тоже фигня фактически, хотя смерти в свое время был шикарен.
Cron - не гарантирует моментальное обновление и подразумевает геморройный batch.

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

p.s.: уложился в 1 запрос для создания checksumm и в 2 запроса при обновлении(checksumm+action), а также для сайтов со статическим содержимым типа библиотек без комментирования и пользователей всего 1 запрос на отрисовку.

Последний раз редактировалось xShift, 06.07.2018 в 23:16.
Ответить с цитированием