Şu anda önbellek dosya adları veya memcached anahtar başvuruları takip etmek için bir tablo kurulum var. Yorum eklenir veya daha fazla içerik eklendiğinde sistem otomatik olarak bir kullanıcı kullanıcı güncellenen içeriği gördüğü sayfasına eriştiğinde dahaki sefere yeniden yüzden güncelleştirme etkilenen bu önbellek dosyaları / anahtar-değer çiftleri temizler, böylece tablo var . Geçerli tablo yapısı aşağıdaki gibidir:
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;
Ancak bu bu tablo çok hızlı bir şekilde, masif alır ve agresif önbelleğe bir orta büyüklükte sitesi, kolaylıkla 500,000 önbellek dosya başvuruları üretebilir, tüm iyi ve güzel olduğunu. Bu gerçekten küçük silmek için önbellek sayfa kimlikleri ararken bu tablo kilitleri ve / veya büyük tablo taramaları neden olabilir gibi bu gerçekten çok sayfa ve varlıkları ile büyük siteler için çözüm değildir siteleri orta için bir sorun değil iken.
Benim soru ne bu çözüm geliştirmek için olası bir yol olurdu?