[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Что быстрее, выбрать все записи или с LIMIT ?
Страницы: 1, 2, 3
sunyang
Делаю постраничную навигацию и встал вопрос - что будет работать быстрее.

Если выбрать одним запросом сразу все записи для категории:
$array = query('SELECT * FROM `product` WHERE catalog_id = 1');

$prod_on_page - количество продуктов на странице

а потом с помощью array_chunk($array, $prod_on_page) разбить полученный массив всех продуктов на куски размером $prod_on_page.

ИЛИ

Сделать запрос $count = query('SELECT count(*) FROM `product` WHERE catalog_id = 1');
А потом делать еще запрос с LIMIT...

Вроде как получается два запроса.
Можно с использованием LIMIT обойтись одним запросом?
Gabriel
Что быстрее поднять 10 мешков картошки на 9ты этаж, а потом выбросить 9 из окна, или поднять 1?
На сколько помню 1м запросом не справиться.
Kод конечно не ахти но думаю будет понятно
http://www.softtime.ru/info/articlephp.php?id_article=33


_____________
one step, two steps HERE WE GO!!!
Игорь_Vasinsky
Цитата
Что быстрее поднять 10 мешков картошки на 9ты этаж, а потом выбросить 9 из окна, или поднять 1?

идеальное сравнение.


Цитата
Можно с использованием LIMIT обойтись одним запросом?


а как же)

$start = 0;
$strings = 10;

$sql = "SELECT ..... LIMIT ".$start.", ".$strings;


на каждой странице 1 запрос.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Gabriel
Цитата
на каждой странице 1 запрос.

клво страниц этот запрос не таскает, соответственно нужно делать count/num_rows
Цитата
идеальное сравнение.

старался)

_____________
one step, two steps HERE WE GO!!!
Valick
Gabriel, при всем моем уважении к Симдянову, это устаревший код.
Количество страниц уже давно считают с применением SQL_CALC_FOUND_ROWS
Правда это все равно два запроса.


_____________
Стимулятор ~yoomoney - 41001303250491
Gabriel
Цитата
при всем моем уважении к Симдянову, это устаревший код.

Цитата
Kод конечно не ахти но думаю будет понятно

Цитата
Правда это все равно два запроса.

что и требовалось доказать.

Цитата
Количество страниц уже давно считают с применением SQL_CALC_FOUND_ROWS

к каунту моя привык user posted image

_____________
one step, two steps HERE WE GO!!!
killer8080
Цитата (Gabriel @ 4.02.2013 - 07:55)
к каунту моя привык

для запросов с группировкой он не катит wink.gif
Игорь_Vasinsky
Цитата
Количество страниц уже давно считают с применением SQL_CALC_FOUND_ROWS

ятока мельком слышал) моя использовать SELECT COUNT(*) as `count`

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Gabriel
зведочка.... а полем не лучше? нагрузка кажись меньше.

_____________
one step, two steps HERE WE GO!!!
kaww
Цитата
зведочка.... а полем не лучше? нагрузка кажись меньше.

если полем, то не будет считать пустые, значит есть доп. проверки, и нагрузка должна быть наоборот больше
sunyang
я тут подумал, если сразу выцепить все записи, без применения запроса с count(*), и заюзать потом array_chank()/
Получается запрос то один, но мы выдераем большое количество информации из базы, если например у продукт есть веское описание...

А если посещалка будет хорошая, то на такой запрос с большой посещалкой уйдет вся память php, а она вроде как ограничена 64мб в основном.

так что буду наверное юзать с двумя запросами: с count(*) и limit
killer8080
Цитата (sunyang @ 4.02.2013 - 13:04)
без применения запроса  с count(*), и заюзать потом array_chank()/

выбрось эту глупость из головы smile.gif
Игорь_Vasinsky
Цитата
зведочка.... а полем не лучше? нагрузка кажись меньше.

я не стал вдаваться в подробности wink.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vasa_c
Цитата
Делаю постраничную навигацию и встал вопрос - что будет работать быстрее.

а проверь.

Цитата
Количество страниц уже давно считают с применением SQL_CALC_FOUND_ROWS

а индексы он учитывать научился?

_____________
Блог ГО | Таблица символов Юникода | Графомания
Игорь_Vasinsky
ооО.. скока лет скока зим. как то я у тебя на пыхе неделю жил) читал и читал)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.