alexz15
Постоялец
- Регистрация
- 3 Окт 2008
- Сообщения
- 394
- Реакции
- 194
- Автор темы
- #1
- Имеется sqlite база, например, 500к записей:
Код:CREATE TABLE pages( id INTEGER PRIMARY KEY, content TEXT, category TEXT, true INTEGER ); CREATE INDEX IF NOT EXISTS true_idx ON pages (true); CREATE INDEX IF NOT EXISTS category_idx ON pages (category);
Выборка происходила так:
Код:SELECT * FROM pages WHERE category='cat' AND true='1' ORDER BY id DESC LIMIT $start, $end;
Есть такой вариант:
Код:SELECT * FROM pages WHERE category='cat' AND true='1' AND id>$start ORDER BY id DESC LIMIT $end;
Можно ли использовать такой запрос:
Код:SELECT * FROM pages WHERE category='cat' AND true='1' AND id BETWEEN $start AND $end ORDER BY id DESC
- И второй вопрос.
Правильно ли я понял, что этот запрос оптимизирован:
Код:SELECT * FROM pages WHERE category='cat' AND true='1' AND id IN (1,5,8,123,5634...) ORDER BY RANDOM()
Код:SELECT * FROM pages WHERE category='cat' AND true='1' ORDER BY RANDOM() LIMIT $end
Последнее редактирование: