Вообщем сегодня я проводил тестирование по оптимизации MySQL запросов.Тест проходил на денвере с таблицой в которой 5 000 000 записей
Прежде всего хочу сказать что все предыдущие статьи которые я читал на 80% не опровдали своих надежд.Да действительно некоторые запросы выполнялись быстрей,а некоторые медленей.
Из всех функций меня особо поразила функция mysql_num_rows() Эта функция подсчитует количество записей в таблице.Перейдём к делу.
Составив следующий запрос:
mysql_result(mysql_query(\"SELECT COUNT(*) FROM `table`\",0)
Я увидел что 5 000 000 записей посчитало за 0.004 секунды.Это очень хороший результат для такого количества записей.
Далее я составил следующий запрос:
mysql_num_rows(mysql_query(\"SELECT * FROM `table`\")
Я очень-очень сильно удивился.Генерация страницы составляла 4.254 секунды.Разница действительно велика.
Далее я составлял кучу запросов в которых небыло больших изменений,например:
[b]
SELECT COUNT(*) FROM `table`[/b]
И
[b]
SELECT COUNT(id) FROM `table`[/b]
Сильно не отличаются,разница приблизительно в 0.0002 сек.Или например вот:
[b]
SELECT `id` FROM `table`[/b]
И
[b]
SELECT * FROM `table`[/b]
Также как и предыдущие запросы отличаются на 0.0002 секунд.
Вывод: большого отличия во времени генерации страницы от того как составлен запрос НЕТ,но есть огромная разница в использовании функций,пример приведён выше.Также генерация зависит от вашего хостинга,например на моём хосте страницы генерировались приблизительно за 0.01 а на денвере за 0.001 Поэтому если ваш сайт долго грузится то причиной всему этому будет ваш хостинг,но не оптимизация скрипта.