Перевод статьи про анализ сложных MySQL запросов:
optimization
There are 3 posts tagged optimization (this is page 1 of 1).
( PHP CLI & eAccelerator ) != love
На днях встал вопрос об оптимизации запуска cron-скриптов. Подавляющая часть – это таски symfony (т.е. выполняется что-то типа ./symfony namespace:taskname params) и даже в условиях использования nice они создают приличный оверхед на сервер.
В ходе разбора полетов решил уяснить, работает ли eAccelerator c php-cli. Собственно с подсказки @ibulatenko забрел на страницу http://eaccelerator.net/wiki/Faq, на которой черным по вебу написано в самом низу страницы:
Is eAccelerator working with php-cgi or php-cli?
This is not yet supported and it won’t be supported in the near future. However FastCGI is supported.
P.S. Судя по всему ни один акселератор не работает при использовании CLI интерфейса (по крайней мере точно известно про XCache, при этом там также написано что поскольку у CLI совершенно другой принцип работы, то и ожидать не стоит).
MySQL оптимизация: ORDER BY RAND()
Лирическое вступление:
Довольно часто у нас возникает потребность выборки случайных данных из mysql базы данных. Как правило времени нет и используется самая простая конструкция вида SELECT [что-то] FROM [где-то] WHERE [то и сё] ORDER BY RAND(). Эта конструкция работает на ура. Но вот прототип выезжает на продуктовые сервера и такой милый сердцу запрос вдруг начинает выпадать в топы медленных логов. Ниже будут рассмотрены несколько возможностей для оптимизации этого запроса по нарастанию их эффективности: