вопрос
Хостер сообщил о высокой нагрузке на сервер при добавлении новостей с сайта, форма добавления состоит в основном из доп полей.
Вот что он мне написал:
Ваш сайт начал генерировать большое количество медленных запросов к mysql. Все эти запросы объединяет наличие regexp при выборе строк. Использование regexp в запросах mysql почти всегда приводит к высокой нагрузке на сервер и намного более длительному выполнению этих запросов по сравнению с использованием условия “LIKE”.
Ниже примеры запросов из лога медленных:
Для ускорения работы сайта, рекомендуем исключить использование regexp из запросов.
Что это за запрос такой - regexp, и можно ли от него избавиться? И как это сделать?
Вот что он мне написал:
Ваш сайт начал генерировать большое количество медленных запросов к mysql. Все эти запросы объединяет наличие regexp при выборе строк. Использование regexp в запросах mysql почти всегда приводит к высокой нагрузке на сервер и намного более длительному выполнению этих запросов по сравнению с использованием условия “LIKE”.
Ниже примеры запросов из лога медленных:
SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM dle_post p LEFT JOIN dle_post_extras e ON (p.id=e.news_id) WHERE category regexp '[[:<:]](11)[[:>:]]' AND approve=1 AND date < '2015-05-11 11:27:35' ORDER BY date DESC LIMIT 0,4;
SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM dle_post p LEFT JOIN dle_post_extras e ON (p.id=e.news_id) WHERE category regexp '[[:<:]](1|2|3|4|5|6|7|8|9|10|11|12|13|14|21|22|23|708|709|710|711|712|713)[[:>:]]' AND p.date >= '2015-05-11 11:24:16' - INTERVAL 7 DAY AND p.date < '2015-05-11 11:24:16' AND approve=1 ORDER BY news_read DESC LIMIT 0,7;
SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM dle_post p LEFT JOIN dle_post_extras e ON (p.id=e.news_id) WHERE category regexp '[[:<:]](1|2|3|4|5|6|7|8|9|10|11|12|13|14|21|22|23|708|709|710|711|712|713)[[:>:]]' AND p.date >= '2015-05-11 11:31:29' - INTERVAL 7 DAY AND p.date < '2015-05-11 11:31:29' AND approve=1 ORDER BY news_read DESC LIMIT 0,7;
Для ускорения работы сайта, рекомендуем исключить использование regexp из запросов.
Что это за запрос такой - regexp, и можно ли от него избавиться? И как это сделать?