Лимит

  • Автор темы Саня
  • Дата начала

Саня

Guest
Лимит

Есть таблица с большим количеством записей. Я ограничеваю запрос (Select... limit 0, 10) и хочу сделать ряд ссылок для просмотра следующих записей (как в этом форуме внизу экрана "Страниц (3): [1] 2 3 »").
Проблема: я могу реализовать это только при помощи 2-х запросов к базе.
Как сделать это при помощи только 1-го запроса?
 

.des.

Поставил пиво кому надо ;-)
Саня.. ну и что это за запросы? показывай. один limit n,m а другой?
в принципе 2 запроса это не страшно если первый простой например такой.
SELECT count(id) FROM
 

Саня

Guest
Такой и есть, чтобы узнать общее количество записей, удовлетворяющих некоторому условию.
 

Саня

Guest
Возможно, вы поделитесь своей идеей, как это сделать...
Заранее благодарен.
 

si

Administrator
http://www.mysql.com/doc/en/Nutshell_Other_features.html
Functions like SQL_CALC_FOUND_ROWS and FOUND_ROWS() make it possible to know how many rows a query would have returned without a LIMIT clause.
 

RomikChef

Guest
интересно, а как быстро работают эти функции...
Саня, а почему ты решил задать этот вопрос?
Тебе что-то кажется неправильным в двух запросах?
А то, что у тебя в программе больше одной строчки - тебя это, случайно, не беспокоит?
 

Crazy

Developer
Автор оригинала: RomikChef
интересно, а как быстро работают эти функции...
Если в запросе есть order by (или group by), то, согласно моему разумению, наличие этой функции не должно влиять на скорость. :)
 

Саня

Guest
Автор оригинала: RomikChef
интересно, а как быстро работают эти функции...
Саня, а почему ты решил задать этот вопрос?
Тебе что-то кажется неправильным в двух запросах?
А то, что у тебя в программе больше одной строчки - тебя это, случайно, не беспокоит?
В общем-то беспокоит, но пока-что я сам пытаюсь выискивать лишние строчки.
В любом случае, надо стремиться к совершенству во всём коде, включая и запросы.
 

RomikChef

Guest
Могу тебя заверить. Эти два запроса ничуть совершенство твоих программ не омрачат.
Mysql такая система, что очень и очень часто два запроса оказываются быстрее, чем один.
 

Саня

Guest
Большое спасибо всем за подкинутые идеи.
Наверно, последнее: к вопросу о быстроте:
как вы дамаете, во сколько раз индексирование увеличивает выборку из базы данных, если в ней ~ 50 000 записей?
 

Саня

Guest
Согласен. Я имел ввиду скорость выборки.
Вопрос звучит так:
как вы думаете, во сколько раз индексирование увеличивает скорость выборки из базы данных, если в ней ~ 50 000 записей?
 

clevel

Новичок
как вы думаете, во сколько раз индексирование увеличивает скорость выборки из базы данных, если в ней ~ 50 000 записей?
все зависит от частоты повтора записей в ней находящихся...
ведь суть индеска - найти нужные данные среди всего списка возможных вариантов, и если вариантов мало, а кол-во нужных данных по отношению к общему числу записей велико, то скорость выборки возрастет не на много..
однако грамотно расставленные индексы еще никому не помешали
 

Crazy

Developer
Автор оригинала: Саня
Согласен. Я имел ввиду скорость выборки.
1. Индексирование никак не влияет на скорость выборки. Абсолютно.
2. Индексирование влияет на скорость отбора.

Соответсвенно, чем больше записей ты исключаешь из выборки с использованием индексов -- тем больший эффект по скорости ты получишь.

Если в результате запроса ты загружаешь 90% записей таблицы, то от наверняка индексов не будет толку.

Если в результате запроса ты получаешь 1 запись из миллиона, то повышение скорости на 3-4 порядка -- нормальное явление.
 

chira

Новичок
Если ты за ясность изложения мысли, то теперь почитай , что написал....
Автор оригинала: Crazy
1. Индексирование никак не влияет на скорость выборки. Абсолютно.
2. Индексирование влияет на скорость отбора.

Соответсвенно, чем больше записей ты исключаешь из выборки с использованием индексов -- тем больший эффект по скорости ты получишь.
индексы не используются для исключения не нужных записей, они используются для нахождения нужных
Если в результате запроса ты загружаешь 90% записей таблицы, то от наверняка индексов не будет толку.

Если в результате запроса ты получаешь 1 запись из миллиона, то повышение скорости на 3-4 порядка -- нормальное явление.
здесь ты об нахождении нужных записей сказал правильно
 
Сверху