Нужна помощь в составлении запроса, который эффективно использует индекс

Sergey_Al

Новичок
Нужна помощь в составлении запроса, который эффективно использует индекс

Есть таблица книг

PHP:
CREATE TABLE `books` (
  `book_id` int(11) NOT NULL auto_increment,
  `book_year` smallint(4) unsigned NOT NULL default '0',
  PRIMARY KEY  (`book_id`),
  KEY `book_year` (`book_year`)
)
При наполнении таблицы в итоге получается что-то около 40-ка различных book_year


Потому (правда, причину толком понять пока не могу :( ) запрос

PHP:
SELECT * FROM books WHERE book_year LIMIT 10000,10030
бесполезен с точки зрения использования индекса


Моё решение - создание дополнительного поля связанного с book_year и пронумерованного относительно book_year.


Может быть есть лучший выход ?
 

Beetle(c)]u$

Новичок
Моё решение - создание дополнительного поля связанного с book_year и пронумерованного относительно book_year.
Так у тя же есть ключевое поле book_id...

и вообще, нифига такой запрос тебе нужен?
 

Sergey_Al

Новичок
упс, ошибочка вышла, запрос выглядит так:

PHP:
SELECT * FROM books WHERE book_year=2004 LIMIT 10000,10030
Т.е. выбирает книги определённого года с постраничным разбиением, год и LIMIT естественно меняются.


Надеюсь, теперь понятно в чём дело ?
 

Фанат

oncle terrible
Команда форума
нет, непонятно.
покажи мне человека, который пролистает 300 страниц
 

Sergey_Al

Новичок
Значит, сам вопрос понятен ...
Ну а сколько страниц не так важно, т.к. при большом количестве данных и такой структуре, человек, который захочет пролистать и 30 страниц, это будет делать очень долго.
 
Сверху