Forum Webscript.Ru
Общие => Базы данных => Тема начата: Ray Adams от 23 Апреля 2002, 14:16:12
-
Вопрос для меня стал очень насущный. Сможет ли mySQL спокойно вытягивать 16 одновременный подсоединений и по 80 запросов в минуту? Ну цифры грубые я понимаю, но все же?
Проблемма в том что старый провайдер говорил что мой сайт убивал их mySQL на что я конечно отвечал, не верю! :) Если кто слышал про сайт NVIDIA BIOS COllection, это он и есть. Уже больше месяца переезжаю на нового прова. Так там вообще прикол получился, вот цитата из письма:
---------
Пользователь MySQL "xdgames" систематически перегружает сервер SQL-запросами.
В результате этих действий прекращается нормальная работоспособность
всех клиентов БД, а также отдельных сервисов сервера.
По собранной статистике за период 16:00-17:00 22.04 пользователь
xdgames произвёл около 1000 подключений и 50000 запросов, что
несколько раз приводило к необходимости ручной перезагрузки сервиса.
При таком интенсивном использовании (~16 подключений и 80 запросов в
минуту) необходим отдельный сервер БД.
-
-------
Интересно 8-) Ну допустим пользователи умудрились в один час так подключиться! Хотя я еще не обьявлял о том что сайт пеехал или вернее не говорил что он уже работает. Так кому верить? Я лично свой сайт на новом сервере в запущенном виде не видел ни разу. На сайте стоит PHP Nuke, я знаю что он написан не очень хорошо! Но я его сильно перелопатил, гшде мог делал отчистку после запросов, но мож я не прав? И при 4000-5000 хостов в день Nuke просто убивает mySQL??? Но ведь есть же сайты у которых и по 45000-50000 хостов в день и тоже на mySQL, у них что таких проблем нету?
-
скорее всего проблема в неоптимальном использовании скриптом базы
попробуй посчитать количество запросов / подключений, которые делает скрипт для стандартных операций
-
Spylog использует MySQL, кстати. Думаю, нагрузка у них побольше. ;)
все зависит от коэффициента кривизны запросов и железа сервера.
-
Насчет кривизны запросов не знаю. Я многие оптимизировал. А вот железо 8-) тут я не очень в курсе но там хостатся очень крутые сайты так что думаю что с этим все должно быть нормально. Ну буду копать дальше. Проблма пока что в том , что сайт так и не получается запустить. Его вырубают сразу как только он приходит в себя :(
-
хостатся очень крутые сайты так что думаю что с этим все должно быть нормально
не всегда. нужно точно уточнить.
реально, подсчитай кол-во запросов, как посоветовал Али.
-
Dm
Spylog использует MySQL
Немного не в тему, но все-таки: всегда удивлялся, откуда люди берут информацию относительно используемой на чужом сайте СУБД. У самого три версии:
1) утечка/несокрытие инфомации (не обсуждается);
2) хостишся "рядом", отлично знаешь хостера и, возможно, соседей;
3) иногда можно строить предположения по каким-то косвенным признакам (особенности работы самого сайта).
Может уточните или расширите список?
-
YA
дело в том, что это официальные сведения.
а вообще, узнается эта инфа обычно лично у админов или др. сотрудников.
-
Dm
Ну в данном случае понятно. Просто я сталкивался со случаями, когда такая информация админами скрывалась.
-
Так вот теперь малость дополнение. Сайт мой заработал, но опять не надолго 8-)) Но я успел его увидеть. Не прошло и пяти минут как он отключился. Вернее видно что не пашет мускул. Решил я всетаки проверить какая нагрузка идет. Копия сайта у меня локально сидит. Запустил WinMysqlAdmin там есть статистика. Вот что она мне показала, при открытии главной страницы происджоит около 200 запросов., но поток открыт один! НЕужели у них там 386 что не справляется с такими запросами??? Тем более что из 200 запросов подавляющее большинсвто это запросы типа select count(*) from. ???
Сколько я не пытался убить мускул на моей машине, ничего не вышло 8-) А у меня стоит простая тачка с P3 733, и 256 рамы
-
Вот что она мне показала, при открытии главной страницы происджоит около 200 запросов
Одна страница 200 запросов ? По-моему это ОЧЕНЬ много.
-
Ну а что делать??? Информации много и 100% вытягивается из базы. Оптимизировать мождно только сами запросы но не колличесвто
-
Ну а что делать??? Информации много и 100% вытягивается из базы. Оптимизировать мождно только сами запросы но не колличесвто
Почему? Оптимизация количества запросов - вполне нормальная задача.
-
Да я не про то 8-)
Уменьшит кол-во врядли получиться так как каждый запрос делает свою работу и по другому ее не сделаеш.
-
Уменьшит кол-во врядли получиться так как каждый запрос делает свою работу и по другому ее не сделаеш.
А здесь, батенька, вы скорее всего не правы....:))
-
Может быть :)
Просто те запросы что я смог понять черпают данные которые в одном запросе не вытащиш. mySQL не InterBase и тем более не MS-SQL. ИСпользуем то что под рукой. Вдобавок на PHPNuke сидит очень много сайтов у которых посещений в два раза больше и у них все ок!
-
Вдобавок на PHPNuke сидит очень много сайтов у которых посещений в два раза больше и у них все ок!
Насколько я знаю, многие очень сильно оптимизируют его.
-
Чем я и занимаюсь по сей день!
Вот только что вышел на сайт и полуил Too many connections. Помейлу мне сказали что там отведено не долее 300 соединений для одного сайта. Значить реально в один и тот же момент подключается более 300, да уж 8-((. Прям хоть стой хоть плакай :)
Старый пров хотябы два раза в месяц накрывался а новый такой крутой а вот в течении дня два раза накрылся :(.
P.S. Может все таки крутось провайдера не в обеспечении нормальной работы 1000 сайтов за счет урезания конектов? А именно в том что любой сайт может пахать не зависимо от нагрузки? - хотя эти мысли уже в другой форум
-
Одна страница 200 запросов ? По-моему это ОЧЕНЬ много.
Совершенно верное замечание
у меня самого было аж 370 ! запросов, и я их всех свёл в 2 (!), немного изменив структуру таблиц самой базы....
ИМХо, Ray Adams , в твоём случае, вероятно, тоже можно кол-во запрсов сократить
-
А именно в том что любой сайт может пахать не зависимо от нагрузки? - хотя эти мысли уже в другой форум
... и по другой цене.
-
NAS
Ну у меня тоже не бесплатный
-
NAS
Ну у меня тоже не бесплатный хостинг :)
FILA
Идея конечно хорошая но тут приждеться менять настолько глобально, что боюсь легче будет написать сайт с нуля. Но все равно 300 запросов ни как не уложиш в два!!! Вот к примеру, на главной странице выводиться список новосте до 15 штук, один запрос.
Дальше при выводе каждой новости идет не менее 5 заспросов, на проверку имеет ли новоть продолжение, сколько раз ее читали, сколько коментариев есть,и еще что-то, уже 15*5 = 75!!! А там еще слева и справа столбики выводятся где тоже куча информации, как интересно можно связать такие разные вещи как новости и голосование? Или как одним запросом вытащить список всех новоесте и кол-во коментариве к ним? mySQL не поддерживает вложенных запросов к сожалению
-
mySQL не поддерживает вложенных запросов к сожалению
Зато в доке к нему англицким по бэкграунду написано как можно обойтись без вложенных запросов.
Т.е. преобразовать select так, что бы он стал не вложенным.:))
-
Ray Adams
боюсь легче будет написать сайт с нуля
Не в обиду, но это - самая ценная мысль в этом топике. ;)
ИМХО не надо использовать на своем сайте чужие программы, если до конца не понимаешь как они работают (это только мое мнение).
Дальше при выводе каждой новости идет не менее 5 заспросов, на проверку имеет ли новоть продолжение, сколько раз ее читали, сколько коментариев есть,и еще что-то, уже 15*5 = 75!!!
Не очень корректный подсчет количества запросов...
Выбирается 15 записей из первой таблицы - один запрос. Далее для каждой из этих записей выбираются записи из, допустим, 5-ти связанных таблиц: 1+5+какой-то коэф., а на 15 умножать не надо, т.к. здесь должно использоваться связывание. Ну это, конечно, если код не совсем кривой.
-
YA
Начал писать свой сайт :( :( Времени нету, а надо. Не тянет новый пров мой сайт. Умирает каждый день 8-((
Прям не знаю что и делать. Такой нагрузки просто не бывает, мож кто ломает сайт???
-
Вот к примеру, на главной странице выводиться список новосте до 15 штук, один запрос.
Дальше при выводе каждой новости идет не менее 5 заспросов, на проверку имеет ли новоть продолжение, сколько раз ее читали, сколько коментариев есть,и еще что-то, уже 15*5 = 75!!!
можно в таблицу с новостями добавить столбцы с новоть продолжение, сколько раз ее читали, сколько коментариев есть,и еще что-то,
и при записи новости будут обнавлятся эти столбцы.
соответственно количество запорсов уменьшится до 1штуки
-
Ray Adams
Можно попробовать при вводе новости генерировать html для главной страницы и при заходе на страницу показывать его, а не считывать каждый раз все новости из базы.
-
Можно попробовать при вводе новости генерировать html для главной страницы и при заходе на страницу показывать его, а не считывать каждый раз все новости из базы.
А вот это я бы не советовал. Это совершенно тупиковая ветвь эволюции :) Если представление новостей нужно будет изменить, то что делать с этими html? Короче, стирает это многие прелести использования СУБД.
-
А вот это я бы не советовал. Это совершенно тупиковая ветвь эволюции Если представление новостей нужно будет изменить, то что делать с этими html? Короче, стирает это многие прелести использования СУБД.
Эта самая правильная ветвь.
Взять да и перегенерировать хтмл страницы. Кстати так работают все сайты компьютеры, да и санитариум по такому принципу построен.
-
NAS
Может я чего не понял... Где предполагается хранить эти хтмл, в БД или сразу записывать в html-файлы?
-
Короче, стирает это многие прелести использования СУБД.
...и снимает лишнюю нагрузку с сервера :)
-
html хранится там где и всегда, а информация в БД и при необходимости эти html перегенрируются по шаблону беря информацию из БД.
-
Ну это вроде бы логично. Daiz13 приношу извинения, я не совсем правильно понял об чем речь.
Видимо такой подход стоит применять в отношении только самых критичных (в отношении количества запросов) страниц. Ведь бывают случаи, когда на сайте генерируются тысячи и десятки тысяч страниц по самым разнообразным алгоритмам и шаблонам и при этом данные в БД также активно изменяется. В этом случае критичной может стать уже "перегенерация" страниц при изменениях в БД.
-
В этом случае критичной может стать уже "перегенерация" страниц при изменениях в БД.
Есть такая буква, но это "пиковая" нагрузка (единичная) а не постоянная. В этом весь смысл. Ну и еще логика тоже очень важна. Можно не перегенерировать все, а только последние данные, например для новостей-только все новости за сегодня...
-
NAS, NeoNox, в общем, принципиальных различий в моей и вашей позиции я не вижу, т.к. все зависит от конкретного ресурса и, соответственно, универсалных рецептов в таких вопросах не бывает.
-
Шаблоны конечно.