В чем разница между crontab и cronjob?

  • What is multi_query doing under the hood? - просто посылка всех запросов на сервер одновременно, а не по одному, и получение всех результатов за один раз. Ничего сложнее.
  • Does multi_query simply hit the server x number of times and aggregates the results? - он дважды «ударяет» по серверу - один раз для отправки запросов и один раз для получения результатов.
  • Is there a case where single queries may be more efficient than multiple queries? - зависит от того, как вы определяете «эффективный». multi_query() светится в сети, но память тяжелая, работает query() в контуре наоборот. Для многих операторов SELECT, которые возвращают большие результаты, потери в потреблении памяти, вероятно, значительно перевесят выигрыш в терминах сети, и большую часть времени вам будет лучше выдавать запросы и обрабатывать результат, устанавливаемый на одном время - хотя это зависит от того, что вы делаете с данными. Но если вам нужно запустить много UPDATE операторов, вполне вероятно, что multi_query() будет лучше, так как возвращаемые значения будут просто успешными / неудачными, а потребление памяти будет светлым. Вам придется взвесить все факторы, как то, что вы делаете, сколько времени вы ожидаете от этого, латентность сети между сервером (клиентом) и клиентом, доступными ресурсами (в основном памятью) на сервере и клиентом и т. Д. , и т. д. ... и возьмем его в каждом конкретном случае.
  • Я нашел эту запись для некоторых тестов производительности , сделанных некоторое время назад, когда вывод что от использования multi_query() можно получить общий коэффициент полезного действия. Однако тестовый случай просто выполнял 4 запроса, каждый из которых SELECT имел единственный результат, а определение «более эффективно» просто «быстрее». Нет тестирования для большего количества запросов или больших наборов результатов, и, хотя скорость важна, это не все и все - я могу сделать что-нибудь невероятно быстро, если я дам ему неограниченное количество памяти, но попытка сделать что-то одновременно потерпит неудачу. Это также не тест реального мира, так как конечный результат может быть достигнут с помощью одного запроса JOIN ed.

    Лично я считаю, что это несколько академический, потому что если вы запускаете большой набор инструкций сразу, 90% времени они будут изменяются только в передаваемых данных и структура запроса останется неизменной - что является очевидным кандидатом для подготовленных операторов.

14
задан Trovs 7 February 2013 в 14:54
поделиться