Добрый день, уважаемые! Испытываю затруднения с работой MySQL 4.1.22-log.
Сервер 2 * Xeon 3,2 ГГц, 2 Гб памяти.
Около 40 запросов в секунду, пики до 100.
Происходит "зависание" запросов, с последующим исчерпанием max_connections (=100) и отказом в обслуживании.
Переменные сервера по памяти:
key_buffer = 256M (пробовал до 512)
sort_buffer_size = 1M (пробовал до 2)
read_buffer_size = 1M (пробовал до 2)
В slow-query.log очень много запросов (форума) следующего вида:
select ... i.name, c.name, t.subject, t.username, date_format(t.orderdate,'%Y%m%d%H%i%s') ... from forum_topic as t, forum_index as i, city as c where t.deleted='0' and t.orderdate>date_sub(now(),interval 14 day) and t.idc=c.id and i.id=t.idi order by t.orderdate desc;
Объединяются таблицы forum_index (разделы форума), forum_topics (темы форума), city (города) с последующей сортировкой по полю orderdate (timestamp).
Количество записей:
forum_index = 42
forum_topics = 107000
city = 5
Индексы:
в forum_topic индекс idi_deleted по двум полям idi и deleted
Исходя из этого есть предположения как можно оптимизировать запрос или таблицы? Очень надеюсь на вашу помощь.
Если данных мало - скажите.