Ну, у меня есть веб-сайт с видео, и некоторые из его таблиц:
метка
id ~ int(11), auto-increment [PRIMARY KEY]
tag_name ~ varchar(255)
videotags
tag_id ~ int(11) [PRIMARY KEY]
video_id ~ int(11) [PRIMARY KEY]
видео
id ~ int(11), auto-increment [PRIMARY KEY]
video_name ~ varchar(255)
Теперь на этом этапе таблица тегов имеет> 1000 строк, а таблица видеотегов -> 32000 строк. Поэтому, когда я запускаю запрос, чтобы отобразить все теги от наиболее распространенных до наименее распространенных, требуется более 15 секунд.
Я использую PHP, и мой код (упрощенный) выглядит следующим образом:
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"] . ', ';
}
Теперь помните, что точность на 100% для меня не так важна, как быстрая. Поэтому, даже если запрос выполнялся один раз в день, а его результаты использовались до конца дня, мне было бы все равно.
Я абсолютно ничего не знаю о кешировании MySQL / PHP, поэтому, пожалуйста, помогите!