#mysql
#mysql
Вопрос:
Каково максимальное количество запросов, которые могут быть запущены на выделенном сервере с 4 ГБ оперативной памяти в одном экземпляре.
Я запускаю задание cron, которое может содержать запросы, близкие к ста тысячам. его запросы выполняются в цикле, запросы — это простые запросы, выбирающие 3 поля с целочисленными полями.
пожалуйста, посоветуйте
Комментарии:
1. проверьте время выполнения одного запроса (которое необходимо выполнить несколько раз в задании cron) в mysql и умножьте на 100 тысяч
2. если вы не перегружаете память, то ваш запрос может выполняться вечно. я запускаю отчет, который делает несколько запросов к базе данных, и пока я очищаю данные после каждого цикла, я могу продолжать вечно.
3. @diEho один запрос занял 0.0003 секунды.
4. @Ibrahim Diallo «я очищаю данные» я создаю массив с 5 значениями для вставки в базу данных после выполнения некоторого количества запросов. улучшится ли производительность, если я очищу массив после каждой вставки в базу данных?
5. @user494559 Нет. Это не повлияет на производительность заметным образом.
Ответ №1:
42, конечно. 43-й запрос прерывает его. Нет, на самом деле 🙂
Верхнего предела на количество запросов нет — цикл может выполняться весь день. Если не существует какой-либо формы параллельного кода (т. Е. потоков), каждый запрос из cron-задания будет выполняться последовательно (отправляет запрос, обрабатывает результат, отправляет запрос, обрабатывает …) и, таким образом, общее количество запросов не имеет значения с точки зрения требований к памяти.
Существует, однако, потенциальное (хотя и абсолютно абсурдное) ограничение на обновления / вставки / удаления, которые выполняются в рамках одной транзакции. Это потому, что транзакция должна иметь возможность отката. (Я не уверен, связано ли это с хранилищем, основной памятью или иным образом.)
Удачного кодирования.
Поскольку это длительное задание, обратите внимание: если cron-задание «запускается» в следующее cron-задание (не завершается вовремя), то могут возникнуть серьезные проблемы, поскольку одно и то же «задание» может выполняться несколько раз! Эта некрасивая ситуация может быстро выйти из-под контроля, если cron-задания будут продолжать каскадировать друг в друга: каждое одновременно выполняемое «задание» будет создавать дополнительную нагрузку на сервер базы данных.
Комментарии:
1. когда одно задание cron завершено, оно загружает другое, то есть с одного URL оно переходит на другой URL, например domain.com/cron/job1 перенаправляет на domain.com/cron/job2 так будет ли это проблемой?
2. Это не мой код 😉 Просто предупреждение и кое-что, за чем нужно следить. Описанная проблема возникает из-за [случайного] многократного одновременного выполнения задания. Это по-прежнему не влияет на максимальное количество запросов, но может привести к нехватке других ресурсов (представьте, что 10 000 заданий cron пытаются поговорить с плохим MySQL).