Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка работает медленно. 
:(
    Опции темы
Logo
Дата 27.1.2011, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: нет
Всего: 10



Есть большая таблица, содержащая около 15к записей, статьи для сайта.
Странное поведение.
Такой запрос выполняется быстро.
Код

SELECT id_object FROM object WHERE active = 1 limit 10000, 10;

А такой медленно
Код

SELECT id_object, header FROM object WHERE active = 1 limit 10000, 10;


По id_object и active есть индексы, и в первом случае mysql использует Using index, а во втором нет

Однако такой запрос
Код

select id_object, header from object where id_object = 10000;

Выполняется тоже быстро, хотя Using index, как и во втором запросе нет. В чем дело?

P.S. Дело не втом что limit *, 10, выборка одной записи также выполняется медленно.
PM MAIL   Вверх
Akina
Дата 27.1.2011, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Logo @  27.1.2011,  12:23 Найти цитируемый пост)
в первом случае mysql использует Using index, а во втором нет

Ну если убеждён, что использование индекса ускорит - добавь index hint...

Но вообще твои запросы - кривые. В них нет логики. Какой ты пытаешься вложить смысл в использование limit, если у тебя отсутствует order by?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Logo
Дата 27.1.2011, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: нет
Всего: 10



Цитата

Цитата(Logo @  27.1.2011,  12:23 Найти цитируемый пост)
в первом случае mysql использует Using index, а во втором нет

Ну если убеждён, что использование индекса ускорит - добавь index hint...

Я имел ввиду поле Extra вывода explain. Оно означает, что информация для выборки берется не из таблицы, а прямо из индекса. Во втором запросе Using index невозможен, т.к. по header нет индекса.

order by будет

Это сообщение отредактировал(а) Logo - 27.1.2011, 18:08
PM MAIL   Вверх
Akina
Дата 27.1.2011, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Logo @  27.1.2011,  19:07 Найти цитируемый пост)
order by будет

Вот когда будет - тогда можно будет сказать, какой нужен индекс для ускорения.

Цитата(Logo @  27.1.2011,  19:07 Найти цитируемый пост)
информация для выборки берется не из таблицы, а прямо из индекса

Не может так, как ты описываешь, тормозить извлечение полей 10 записей по индексу. 
Причина где-то ещё.
Давай show create table и настоящий текст запроса.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Logo
Дата 27.1.2011, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: нет
Всего: 10



Может причина в настройке сервера? На другой машине, с такой же базой, перегнанной дампом, все ок.
PM MAIL   Вверх
Akina
Дата 27.1.2011, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Может. Сравнивай конфиги.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0947 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.