Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте,
проблема заключается в том, что есть таблица товаров, в которой 83 000 записей, таблица достаточно активно обновляется, и поэтому некоторые достаточно простые запросы попадают в slow query log (из-за блокировок).
Хочу решить проблему копированием таблицы в память, при этом обновлять чуть реже, но все равно интенсивно.
Возможно ли постоянное обновление таблицы в памяти возложить на MySQL или придется обновлять по крону?
И если обновлять по крону, какими запросами лучше это делать: DROP-CREATE, TRUNCATE-INSERT, REPLACE?
Спасибо. +)
Неактивен
таблица достаточно активно обновляется, и поэтому некоторые достаточно простые запросы попадают в slow query log (из-за блокировок).
Используйте Innodb и блокировок не будет.
Если вас интересует порядок действий при переносе из memory table в простую таблицу.
То это
Неактивен
Я сделал через CREATE-RENAME-DROP.
Один фиг, даже разбил большую таблицу на несколько маленьких, и все равно такой запрос к таблице HEAP длиться 2 секунды:
Неактивен
Это по какому количеству записей бежит ваш запрос ?
Ещё можно сменить сам подход ...
Бегите вашем запросом по всей базе и сохраняйте уже готовые products_id,name_rating (если вы уже это не делайте)
Ещё причиной может быть, нехватка выделенной памяти для memory tables.
Неактивен
Спасибо, ЕвГений, за подсказки. +)))
Люди, добрые,
использую mysqltuner.pl. Реально ли добиться того, чтобы «Temporary tables created on disk» было равно 0%?
Неактивен
И Joins performed without indexes у меня постоянно растет, куда копать, что увеличивать? Как посмотреть, что это за запросы?
Неактивен
Сам список запросов выполняемых на текущий момент запросов можно посмотреть через
Неактивен
Неактивен
Так может быть эти один два запроса и портят Вам жизнь? Насколько долго они выполняются? Вы бы показали их вместе с explain'ами .
Неактивен
В логе медленных запросов этих запросов нет. Значит выполняются они со скоростью до 1 сек.
И те запросы (запросы вставки), которые там появляются, по крону выполняются раз в минут 30.
Неактивен