Требуется помощь по настройке MySQL

12
TA
На сайте с 12.06.2009
Offline
116
TiA
#11
netwind:
Суть говносайтостроительства в работе на массу. Чем больше говноновостей закуплено на говнобирже в виде готовых говнобаз или спарсено, тем больше говнотрафика притянет говносайт. Так что новостей обычно очень много. И тут sql-запросы закономерно становятся говнозапросами.

Давайте будем без "говно" и варезников. Сейчас рассматривается сам движок и ситуация с чрезмерной загрузкой сервера со стороны MySQL сервера.

В данной ситуации в первую очередь стоит анализировать какие запросы наибольше грузят MySQL сервер. Если таковые найдутся, то нужно копаться уже в коде, дописывать механизм кеширования.

Варианты с полным кешированием страниц на уровне nginx... Это даже не знаю как назвать. Самый крайний вариант. Сути проблемы это не решит.

Если вы уж заговорили о количестве новостей, то приведу немножко фактов. На генерацию страницы с полной новостью для гостей в DLE уходит два запроса. Один SELECT и один INSERT/UPDATE. Выборка SELECT происходит по id (PRIMARY INDEX). С какой скоростью она происходит даже при отключенном key_cache, думаю, вам объяснять не надо? На базе с 200К записей на это уходит около 0.0001 - 0.001 сек на слабеньком сервере. Это без учета query_cache. С кешем запросов вообще все мгновенно происходит. При довольно большом кеше запросов размер базы вообще особого значения не имеет.

Профессиональная верстка и разработка сайтов на WordPress (http://www.maultalk.com/topic139110s0.html)
N
На сайте с 06.05.2007
Offline
419
#12
TiA:
Давайте будем без "говно" и варезников. Сейчас рассматривается сам движок и ситуация с чрезмерной загрузкой сервера со стороны MySQL сервера.

А что еще можно сделать на новостном движке ? сайт обладминистрации на DLE никто делать не будет.

Общее мнение о неоптимальных запросах в DLE возникло именно так, как я описал.

TiA:
Варианты с полным кешированием страниц на уровне nginx... Это даже не знаю как назвать. Самый крайний вариант. Сути проблемы это не решит.

Это сёрч, тут это нормально. Никто из людей эти сайты не читает . По крайней мере не будет возмущаться если свой комментарий не увидит из-за кеширования.

TiA:
Если вы уж заговорили о количестве новостей, то приведу немножко фактов. На генерацию страницы с полной новостью для гостей в DLE уходит два запроса.

в основном тупят запросы на поиск, вывод похожих новостей, поиск по тегам.

И, по-моему, самая большая проблема, которую не решить настройками, по крайней мере в dle 8.5 внутри было очень много запросов с calc_found_rows() - это просто вырвиглазный ужас. Так никто не пишет.

Кнопка вызова админа ()
TA
На сайте с 12.06.2009
Offline
116
TiA
#13
netwind:
А что еще можно сделать на новостном движке ?

У меня на DLE есть довольно беленькие пушистые сайты.

netwind:
в основном тупят запросы на поиск, вывод похожих новостей, поиск по тегам.

Вывод похожих новостей по-умолчанию кешируется.

Запросы на поиск в основном тоже довольно простые. Несколько условий + LIKE или MATCH. На базе в 200К записей такого рода запросы исполняются примерно на порядок дольше, чем с выборкой по id. Это значения примерно 0.001 -0.01 сек. Недавно этот вопрос детально исследовал.

Я уже молчу о том, что в нормальных условиях запросы на поиск поступают на несколько порядков реже чем запросы страниц.

netwind:
И, по-моему, самая большая проблема, которую не решить настройками, по крайней мере в dle 8.5 внутри было очень много запросов с calc_found_rows() - это просто вырвиглазный ужас. Так никто не пишет.

Самая большая? Точно? Директива SQL_CALC_FOUND_ROWS в DLE 8.5 не используется. Есть вот проект на 8.5. Не нашел. Вместо этого используется менее эффективная и более привычная COUNT(*). При включенном кешировании используется довольно редко.

N
На сайте с 06.05.2007
Offline
419
#14
TiA:
Запросы на поиск в основном тоже довольно простые.

Не я виноват в том, что пользователи DLE не знают как включить полнотекстовый поиск. Я просто описываю свои наблюдения. Некоторые специально не включают, иначе не работает поиск по словам из трех и менее букв.

TiA:
Я уже молчу о том, что в нормальных условиях запросы на поиск поступают на несколько порядков реже чем запросы страниц.

Так не число запросов важно, а нагрузка. Один запрос на поиск нагружает как 10 тыс обычных мелких.

Ну вот пользователь приходит из поисковика на главную постоянно обновляющегося с помощью парсеров говносайта. Заходит, а там ничего нет. Новость "уплыла" на следующие страницы. Второе, что он будет делать - искать через поиск. Первое - закроет окно, говносайт же. Вот такая вот практика.

Самая большая? Точно? Директива SQL_CALC_FOUND_ROWS в DLE 8.5 не используется.

Лучше ищи. В 8.5 точно есть в tagscloud.php. В остальных версиях и того больше.

Да, собственно, чего далеко ходить, Вот они все тут. У всех все одинаково выглядит. У всех проблемы с производительностью и везде SQL_CALC_FOUND_ROWS

1 /ru/forum/comment/7509780

2 /ru/forum/328542

3 /ru/forum/626962

4 /ru/forum/comment/7475307

5 /ru/forum/308677

TA
На сайте с 12.06.2009
Offline
116
TiA
#15
netwind:
Не я виноват в том, что пользователи DLE не знают как включить полнотекстовый поиск.

Вы бы посмотрели в код как он работает прежде чем писать. Пользователи бывают разные.

netwind:
Ну вот пользователь приходит из поисковика на главную постоянно обновляющегося с помощью парсеров говносайта. Заходит, а там ничего нет. Новость "уплыла" на следующие страницы. Второе, что он будет делать - искать через поиск. Первое - закроет окно, говносайт же. Вот такая вот практика.

Вы, похоже, часто с говносайтами дело имеете. Мы вроде как сам DLE рассматриваем и конкретный случай с MySQL сервером, а не говносайты с парсерами в целом.

N
На сайте с 06.05.2007
Offline
419
#16

TiA, я не это рассматриваю.

Я рассматриваю откуда у админов взялось мнение о том, что dle плохо работает с mysql. Мнение это не зависит от твоей или моей практики, частных случаев настройки. Оно много лет было и будет существовать еще много лет. Ты не сможешь ему противостоять, потому что для мнения есть не зависящие от тебя предпосылки, а ты всего лишь "плотно работал с DLE".

Устраивайся к ним если хочешь что-то изменить или доказать.

Andreyka
На сайте с 19.02.2005
Offline
822
#17
TiA:

Если вы уж заговорили о количестве новостей, то приведу немножко фактов. На генерацию страницы с полной новостью для гостей в DLE уходит два запроса. Один SELECT и один INSERT/UPDATE.

Уродский движок. Для анонимных юзеров должно быть 0 запросов, так как отдача идет из файлового кеша. Для зареганных - 1 sql select.

Не стоит плодить сущности без необходимости
M
На сайте с 01.12.2009
Offline
235
#18
Andreyka:
Уродский движок. Для анонимных юзеров должно быть 0 запросов, так как отдача идет из файлового кеша. Для зареганных - 1 sql select.

DLE нормальный движок, просто его надо готовить хорошо, или постепенно, приводя всё в должный вид.

Администратор Linux,Freebsd. построения крупных проектов.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий