Peki ben bir video sitesi ve olan kendi tabloları birkaç var:
tags
id ~ int(11), auto-increment [PRIMARY KEY]
tag_name ~ varchar(255)
videotags
tag_id ~ int(11) [PRIMARY KEY]
video_id ~ int(11) [PRIMARY KEY]
videos
id ~ int(11), auto-increment [PRIMARY KEY]
video_name ~ varchar(255)
Şimdi bu noktada etiketler table> 1000 satır vardır ve videotags table> 32000 satır vardır. Ben en yaygın tüm etiketleri görüntülemek için bir sorgu çalıştırdığınızda Yani en azından ortak it> yürütmek için 15 saniye sürer.
Ben aşağıdaki gibi (basitlik için aşağı sulanan) PHP ve kodumu kullanıyorum olduğunu:
foreach ($database->query("SELECT tag_name,COUNT(tag_id) AS 'tag_count' FROM tags LEFT OUTER JOIN videotags ON tags.id=videotags.tag_id GROUP BY tags.id ORDER BY tag_count DESC") as $tags)
{
echo $tags["tag_name"] . ', ';
}
Şimdi hızlı olarak bu% 100 doğru olması benim için önemli olmadığını akılda tutarak. Yani sorgu günde bir kez idam edildi ve sonuçları günün geri kalanı için kullanılan bile umurumda olmaz.
MySQL / PHP önbelleğe alma hakkında kesinlikle hiçbir şey bu yüzden lütfen yardım biliyorum!