Доброго времени суток!
Иногда приходится делать достаточно сложные sql-запросы на MySQL-сервер, которые могут повесить сервер. Sql-запросы часто имеют аналитическую функцию, то есть запустил раз там в месяц-два, чтобы узнать опредленные изменения.
Так вот вопрос: можно как-то проверить запрос перед его непосредственным выполнением на то что повесит ли он сервер или выполнится нормально?
Пока что, чтобы не весит сервер приходится в php писать множественные односложные запросы и потом уже смотреть - это муторно) может, как-то можно указать тайм-аут, чтобы сервер не мучился и если долго запрос выполняется, то просто его снимал с исполнения?
Заранее благодарен!
1. Silver Soft - 05 Декабря, 2013 - 07:24:14 - перейти к сообщению
2. DeepVarvar - 05 Декабря, 2013 - 08:42:24 - перейти к сообщению
Чтобы узнать таймаут, нужно запрос хотябы раз выполнить. Но некоторые, даже долгие запросы, при повторном вызове могут оказаться в кеше и таймаут будет уже не тот, что был получен в первый раз.
Бредовая идея.
Бредовая идея.
3. AmsTaFF - 05 Декабря, 2013 - 08:52:28 - перейти к сообщению
можно попробовать запрос EXPLAIN, поищите его в доках или в гугле.
+ может быть надо подобавлять индексы, внешние ключи, конфиги сервера чтобы оптимизировать работу, да и ещё оптимизировать сам запрос большой
+ можно попробовать сделать дамп БД, сделать там какую-нибудь копию на отдельном сервере и там запустить сложный запрос (это жесть конечно)
+ насчет того, чтобы снимал сам - вроде там есть настройка в конфиге БД
+ может быть надо подобавлять индексы, внешние ключи, конфиги сервера чтобы оптимизировать работу, да и ещё оптимизировать сам запрос большой
+ можно попробовать сделать дамп БД, сделать там какую-нибудь копию на отдельном сервере и там запустить сложный запрос (это жесть конечно)
+ насчет того, чтобы снимал сам - вроде там есть настройка в конфиге БД
4. Silver Soft - 05 Декабря, 2013 - 10:16:15 - перейти к сообщению
AmsTaFF пишет:
может быть надо подобавлять индексы, внешние ключи, конфиги сервера чтобы оптимизировать работу, да и ещё оптимизировать сам запрос большой
AmsTaFF пишет:
насчет того, чтобы снимал сам - вроде там есть настройка в конфиге БД
я не админ, а админ рогами упирается и ничего делать не хочеть - типа и так работает)
AmsTaFF пишет:
можно попробовать сделать дамп БД, сделать там какую-нибудь копию на отдельном сервере и там запустить сложный запрос (это жесть конечно)
я тоже думаю, пока в эту сторону)
а так явно, что что-то с настройками, так как он любой запрос с вложенным запросом заворачивает и отправляется висеть до перезагрузки))
5. DeepVarvar - 05 Декабря, 2013 - 10:52:56 - перейти к сообщению
Silver Soft пишет:
Да ты шо? А нука:любой запрос с вложенным запросом заворачивает и отправляется висеть до перезагрузки
(Добавление)
AmsTaFF пишет:
И смысл? Это не решит вопрос с кешем. Время выполнения всегда будет разным.попробовать запрос EXPLAIN
AmsTaFF пишет:
Конечно это жесть - Вы там походу даже не слышали про master и slave.это жесть конечно
Silver Soft пишет:
Не думайте в ту сторону. Это темная сторона.
я тоже думаю, пока в эту сторону