- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Имеется вполне себе простенький и примитивный запрос, который, тем не менее, тормозит. Проводил эксперименты, чтобы вычислить от чего, довел до уровня, когда запрос идет вообще без условий. Но тормозит все так же.
Выглядит окончательный вариант примерно так:
Заметно же влияет на выдачу только уменьшение строк в таблице (в полном варианте их там порядка 10.000).
Да, в таблице довольно много полей (40). Но неужели только из-за этого запрос, в котором вообще нет условий может тормозить так, что страница выползает только секунд через 10 (при уменьшении строк в таблице до 1000 штук страница выползает в течение секунды—двух)? И при этом не тормозить, если добавлять условия или даже извращаться, заделывая новые запросы при прогоне цикла по mysql_fetch_assoc.
З.Ы. Удаление ORDER тоже ни на что особо не влияет.
SELECT (*) FROM Table ORDER BY Field4, Field5 LIMIT 50 ?
Где он тормозит? На сервере или где? 10К записей это вообще капля в море для БД.
1. Ключи на Field4, Field5 стоят?
2. Какие вообще ключи в таблице?
3. Тормозит - что значит? Какое именно время выполняется? Было бы хорошо, если сделали демо-базу и выложили в виде sql-файла.
4. Explain что показывает?
SELECT (*) FROM Table ORDER BY Field4, Field5 LIMIT 50 ?
В смысле? Так быстрее должно быть? Дык, там ж 40 полей. Ну, и пробовал так тоже. Уж точно не быстрее...
Asar добавил 14.08.2011 в 23:18
Где он тормозит? На сервере или где? 10К записей это вообще капля в море для БД.
Вот и я удивляюсь. На сервере. Не при выдаче же в браузер...
В смысле? Так быстрее должно быть? Дык, там ж 40 полей. Ну, и пробовал так тоже. Уж точно не быстрее...
у меня было что (*) быстрее работал, чем запрос с перечислением полей, так что мало ли
Вот и я удивляюсь. На сервере. Не при выдаче же в браузер...
а это мысль.
скачай на локалхост базу и проверь, вдруг чё
у меня было что (*) быстрее работал, чем запрос с перечислением полей, так что мало ли
Да ладно? По логике такое возможно, когда в базе только цифры, без строковых параметров. Но на практике ни разу с таким не сталкивался. Скорее всего вы путаете с COUNT(*).
1. Ключи на Field4, Field5 стоят?
Нет, только на Field4. Но, как я и написал выше, оно все так же тормозит, если вообще ORDER убрать!
2. Какие вообще ключи в таблице?
Ключи в таблице для всех полей, по которым возможны условия (WHERE). Всего 8 штук. Но оно тормозит и вообще без условий (для теста делал).
3. Тормозит - что значит? Какое именно время выполняется? Было бы хорошо, если сделали демо-базу и выложили в виде sql-файла.
К сожалению, т.к. я чайник, то тормозит оно именно на глаз в браузере (вплоть до 504 иногда). При этом, кстати, если через phpmyadmin запрос сделать — все моментально выполняется (в т.ч. и с WHERE). И вот это меня вообще вводит в транс. Куды бечь?
4. Explain что показывает?
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE TableName ALL NULL NULL NULL NULL 10076 Using filesort
З.Ы. Еще одна странность. Вчера ночью вдруг все забегало. И на этой странице, и на паре других, где были проблемы, но поменьше. Потом опять все как обычно. Спрашиваю хостера — чего это у вас там было. Они грят, ничего не было, только резервное копирование в это время шло.
Asar добавил 14.08.2011 в 23:39
Уфф. Кажись, нашел. Дело оказалось в соседнем запросе, который еще более тупой (чем я), и для которого было 100 штук запросов в цикле, плюс каждый из этой сотни содержал еще по циклу запросов на 10—50...
Спасибо всем за участие.
Asar добавил 14.08.2011 в 23:40
З.Ы. А чтобы дурацкие вопросы поменьше задавать, скажите — как можно замерить время выполнения запроса к БД? Ни разу не делал...
З.Ы. А чтобы дурацкие вопросы поменьше задавать, скажите — как можно замерить время выполнения запроса к БД? Ни разу не делал...
Хм, и правда. Спасиб!
Почитайте документацию MySQL:
1. EXPLAIN
2. SHOW PROFILES
может поможет