Создание эффективного способа отслеживания многих сотен из 1000 ссылок на теговые идентификаторы кэша.

0

В настоящее время у нас есть настройка таблицы, чтобы отслеживать имена файлов кеша или ссылки на memcached. Таблица существует, так что при добавлении комментария или добавлении большего количества контента система автоматически очищает эти файлы кэша/пары ключ-значение, на которые влияет обновление, поэтому при следующем переходе пользователя на страницу пользователь видит обновленное содержимое, Текущая структура таблицы ниже:

CREATE TABLE IF NOT EXISTS `cache_references` (
  `cache_id` int(21) NOT NULL AUTO_INCREMENT,
  `cache_page_id` varchar(255) NOT NULL,
  `cache_tag` varchar(100) NOT NULL,
  `cache_group` varchar(100) NOT NULL,
  `cache_expiry` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`cache_id`),
  KEY `cache_page_id` (`cache_page_id`),
  KEY `cache_tag` (`cache_tag`),
  KEY `cache_group` (`cache_group`),
  KEY `cache_expiry` (`cache_expiry`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Это все хорошо и хорошо, однако эта таблица становится массивной, очень быстрой и умеренно размерной, агрессивно кэшированной может легко производить более 500 000 ссылок на кеш файлы. Хотя это не проблема для небольших и умеренных сайтов, на самом деле это не решение для крупных сайтов со многими страницами и активами, поскольку это может вызвать блокировки таблиц и/или большие сканирование таблицы при поиске идентификаторов страниц кэша для удаления.

Мой вопрос: каким образом можно было бы улучшить это решение?

Теги:
tags
caching

1 ответ

0

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

  • 0
    интересный момент спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню