![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
В порядке бреда
Добавлено @ 14:35 Или уж совсем
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
shevak, покажи explain select
|
|||
|
||||
shevak |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 12.8.2008 Репутация: нет Всего: 1 |
Да, сделал, и индекс по нему поставил. А так же индек по полям auction_id - status - sum. Он помогает на других запросах. а на этом - нет
Добавлено через 2 минуты и 36 секунд Explain
Добавлено через 5 минут и 17 секунд Akina, ни тот ни другой запрос не помог |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Ожидалось, в принципе... Попробуй пойти дальше, и вынести в последнем варианте подзапрос в статический вьюв. А заодно посмотри, сколько записей он выбирает. Может, мы зря копья ломаем? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
shevak |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 12.8.2008 Репутация: нет Всего: 1 |
Это не то. auction_id=439 выбирает все строки правильно и их сортирует. Потому и получатся 39957 строк. Но если б можно было поставить для ключа auction_id, status, sum нужную сортировку, то ситуация б улучшилась. Возможно ли такое в мускул? мне надо чтоб сортировал auction_id, status. sum DESC
Добавлено через 5 минут и 53 секунды Сейчас к примеру если я убираю сортировку DESC - все работает четко и быстро. Добавлено через 12 минут и 11 секунд Когда ставлю DESC - появляется Using filesort а число строк и там и там одинаковое |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Слушай, а поясни-ка ты мне великую мысль...
С одной стороны, мы выбираем записи, для которых строго auction_id=439. С другой стороны, сначала сортируем именно по auction_id. Вопрос - нахрена? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
shevak |
|
||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 12.8.2008 Репутация: нет Всего: 1 |
Вот сам запрос
Никакой сортировки по auction_id нет. Это для того чтоб ключ был эффективным я добавляю в него auction_id Добавлено через 6 минут и 37 секунд Думал сделать что-то типа такого
Но не помогло, наверное синтаксис неправильных, хотя отработал нормально |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
и называешь его auction_id_2? а он не используется - см. explain... попробуй указать явно его использование в запросе - может, получится уйти от filesort... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
shevak |
|
||||||||||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 12.8.2008 Репутация: нет Всего: 1 |
индекс auction_id_3 - это с полем id. Время выполнения запроса - 0.0006 sec
Время выполнения запроса 0.0507 sec
Время выполнения запроса 0.0613 sec А чем я и говорю, мешает параметр DESC, только как его в формирование индекса в ставить |
||||||||||||
|
|||||||||||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Ну при указании индекса можно указать ASC/DESC - только на текущей версии оно игнорируется и строится всегда в ASC. Это даже в документации описано. Однако если эта операция действительно критична, могу предложить пойти по пути увеличения таблицы. Ввести в неё ещё одно поле (скажем назвать его sum2)? и писАть в него (0-sum). Включить именно его в индекс, и именно этот индекс использовать при сортировке. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
shevak |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 12.8.2008 Репутация: нет Всего: 1 |
Akina, у меня версия 5.0, случайно не знаешь в 5.1. исправили это проблему? или хотя бы в 5.5
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
shevak |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 12.8.2008 Репутация: нет Всего: 1 |
Спасибо. Пока наверное это лучший вариант. Пришлось создать доп. индекс, вставка занимает больше времени чем я планировал, но в целом результат неплохой. Скорость запроса увеличилась в разы.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |