Одна часть вопроса - оптимизация - была решена (тема http://php.ru/forum/viewtopic.php?t=11398). Но тему зачем-то закрыли, и поэтому вторая часть вопроса осталась без ответа. Вкратце: 1. Есть три хоста. 2. Есть неоптимальный код. Вопрос: почему один хост реагирует так нервно на неоптимальный код, а два других спокойно переваривают этот код? Это проблема серверного ПО, или дело в настройках, или дело в недостаточных ресурсах, выделяемых скрипту?
Не понял, зачем? Я хочу выяснить не время работы скрипта, а совсем другое (на примере того же прайс-листа): Есть масса запросов (~1800). Цифра не малая, и вполне снижаемая к 13 запросам. Но почему один хост может обработать эту массу запросов за оч.малое время, а другой хост входит в ступор. Если данные не в кэше, то 30 секундная загрузка обеспечена. Может есть какие-то настройки mysql, которые не позволяют обрабатывать такое кол-во запросов. Ведь 1800 - по большому счёту не такая и большая величина. И объем получаемых данных по этим запросам невелик. Не думаю, что оборудование на хостах разнится по мощность в 30 и более раз.
Самое вероятное объяснение - не кэшируются файлы бд, т.е. при каждом запросе происходит чтение с диска.
Кеширование естественно сказывается. А как быть с тем, что быстрый хост отдает страницу сразу? Даже при первом заходе на страницу? Не хранит же он данные в кэше сутками? Может проблема медленного хоста в малом объёме памяти?
или большой загрузке других сайтов (при Виртуалном хостинге) ещё вариант ... бинарное логирование мускула - если включено, то чем больше запросов, тем больше потеря времени! то-есть проблемы где угодно!
Ну раз все принялись гадать по кофейной гуще, присоединюсь. Моя версия такова: сервер бд и апаче находятся на разных машинах. Следовательно mysql работает не через сокеты, а по соединению во как
mysql.hoster.ru - 195.128.50.22 ip моего сайта - 89.188.101.74 если я обращаюсь непосредственно на mysql.hoster.ru (из mysql.exe), то ответ получаю сразу, если с моего сайта через скрипт - тормозит.
сокет - это совокупность ИП адреса и порта. Соответственно, если они на разных машинах - через сокет. Который и есть "соединение".