Я понимаю, как работает memcached. Вы используете его для хранения фрагментов данных для повышения производительности сайта. Когда вы хотите получить некоторые данные, вы сначала проверяете, есть ли они в memcached, если это так, то вы извлекаете их, в противном случае вы проверяете свою базу данных / файловую систему и т. Д.
Я просто не знаю, как / когда его использовать? Что было бы хорошей возможностью?
У меня есть следующие таблицы:
Автор:
id логин пароль пароль соль
email_salt email_verified
ip_address
Author_threads:
thread_id, author_id
Тема:
идентификатор, заголовок, содержание, создано
Метка:
идентификатор, имя
Thread_tags:
tad_id, thread_id
Я хочу выбрать последние 30 тем, их автора и все их теги. Это оператор SQL, который я использую:
SELECT thread.title, thread.id as thread_id,
thread.content, author.username, author.id as author_id,
GROUP_CONCAT(DISTINCT tag.name ORDER BY tag.name DESC SEPARATOR ',') AS tags
FROM thread
JOIN thread_tags ON thread.id = thread_tags.thread_id
JOIN tag ON thread_tags.tag_id = tag.id
JOIN author_threads ON thread.id = author_threads.thread_id
JOIN author ON author_threads.author_id = author.id
GROUP BY thread.id DESC
LIMIT 0, 30
Это PHP, который я использую:
function get_latest_threads($link, $start)
{
$start = minimal_int($start);
$threads = sql_select($link, "SELECT thread.title, thread.id as thread_id,
thread.content, author.username, author.id as author_id,
GROUP_CONCAT(DISTINCT tag.name ORDER BY tag.name DESC SEPARATOR ',') AS tags
FROM thread
JOIN thread_tags ON thread.id = thread_tags.thread_id
JOIN tag ON thread_tags.tag_id = tag.id
JOIN author_threads ON thread.id = author_threads.thread_id
JOIN author ON author_threads.author_id = author.id
GROUP BY thread.id DESC
LIMIT $start, 30" # I only want to retrieve 30 records each time
);
return $threads;
}
Где / как будет использоваться memcached здесь?