SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.10.2011 18:31:17

Wander
Участник
Зарегистрирован: 02.10.2011
Сообщений: 6

Выбор диапозона или LIMIT

При выборки сообщений из личной почты пользователя (по id) что лучше использовать? Диапазон данных ссылаясь на id сообщения данного пользователя создав индекс (user,id_user_massage) где id_user_massage не уникален а привязан к данному пользователю, или ставить LIMIT 0,20 /// 20,20 /// 40,20....

Вопрос возник из-за того что при вводе EXPLAIN в лимите (индекс только по user_id) мускул просматривает (rows) все сообщения пользователя... скорее всего как я понимаю это произходит из-за того что он просматривает сортировку по уникальному ID... НО использует const

А второй вариант имеет тип range... хоть и просматривает нужное кол-во вариантов.

И если вы поняли моё положение может есть какой-нибудь лучший вариант выборки до которого я не додумался?... так как есть ситуации когда я не знаю данных для создания диапозона... а проблема лимита уже изложена выше

Неактивен

 

#2 10.10.2011 23:29:35

Wander
Участник
Зарегистрирован: 02.10.2011
Сообщений: 6

Re: Выбор диапозона или LIMIT

SELECT MAX(`id_row`) FROM `inbox` WHERE `id_user` = 3
объясните пожалуйста, почему этот запрос использует Select tables optimized away если поставлен составной ключ | id_user | id_row | в данном случае id_row это индивидуальный индитификатор сообщения для каждого id_user..... и еще.. этот запрос быстрее с выборкой
WHERE `id_user` = 3 LIMIT 10, 10
например?

Отредактированно Wander (10.10.2011 23:30:19)

Неактивен

 

#3 10.10.2011 23:31:59

Wander
Участник
Зарегистрирован: 02.10.2011
Сообщений: 6

Re: Выбор диапозона или LIMIT

просто чем меня удивил этот запрос что не нужно иметь хранилище для кол-ва сообщений пользователя, ведь Select tables optimized away выполняется очень быстро так?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson