sunyang
3.02.2013 - 22:22
Делаю постраничную навигацию и встал вопрос - что будет работать быстрее.
Если выбрать одним запросом сразу все записи для категории:
$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
4.02.2013 - 00:08
Что быстрее поднять 10 мешков картошки на 9ты этаж, а потом выбросить 9 из окна, или поднять 1?
На сколько помню 1м запросом не справиться.
Kод конечно не ахти но думаю будет понятно
http://www.softtime.ru/info/articlephp.php?id_article=33
_____________
one step, two steps HERE WE GO!!!
Игорь_Vasinsky
4.02.2013 - 01:14
Цитата |
Что быстрее поднять 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
4.02.2013 - 08:44
Цитата |
на каждой странице 1 запрос. |
клво страниц этот запрос не таскает, соответственно нужно делать count/num_rows
Цитата |
идеальное сравнение. |
старался)
_____________
one step, two steps HERE WE GO!!!
Gabriel, при всем моем уважении к Симдянову, это устаревший код.
Количество страниц уже давно считают с применением SQL_CALC_FOUND_ROWS
Правда это все равно два запроса.
_____________
Стимулятор ~yoomoney - 41001303250491
Gabriel
4.02.2013 - 09:55
Цитата |
при всем моем уважении к Симдянову, это устаревший код. |
Цитата |
Kод конечно не ахти но думаю будет понятно |
Цитата |
Правда это все равно два запроса. |
что и требовалось доказать.
Цитата |
Количество страниц уже давно считают с применением SQL_CALC_FOUND_ROWS |
к каунту моя привык
_____________
one step, two steps HERE WE GO!!!
killer8080
4.02.2013 - 10:19
Цитата (Gabriel @ 4.02.2013 - 07:55) |
к каунту моя привык |
для запросов с группировкой он не катит
Игорь_Vasinsky
4.02.2013 - 14:27
Цитата |
Количество страниц уже давно считают с применением 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
4.02.2013 - 14:47
зведочка.... а полем не лучше? нагрузка кажись меньше.
_____________
one step, two steps HERE WE GO!!!
Цитата |
зведочка.... а полем не лучше? нагрузка кажись меньше. |
если полем, то не будет считать пустые, значит есть доп. проверки, и нагрузка должна быть наоборот больше
sunyang
4.02.2013 - 15:04
я тут подумал, если сразу выцепить все записи, без применения запроса с count(*), и заюзать потом array_chank()/
Получается запрос то один, но мы выдераем большое количество информации из базы, если например у продукт есть веское описание...
А если посещалка будет хорошая, то на такой запрос с большой посещалкой уйдет вся память php, а она вроде как ограничена 64мб в основном.
так что буду наверное юзать с двумя запросами: с count(*) и limit
killer8080
4.02.2013 - 16:56
Цитата (sunyang @ 4.02.2013 - 13:04) |
без применения запроса с count(*), и заюзать потом array_chank()/ |
выбрось эту глупость из головы
Игорь_Vasinsky
4.02.2013 - 17:03
Цитата |
зведочка.... а полем не лучше? нагрузка кажись меньше. |
я не стал вдаваться в подробности
_____________
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
Цитата |
Делаю постраничную навигацию и встал вопрос - что будет работать быстрее. |
а проверь.
Цитата |
Количество страниц уже давно считают с применением SQL_CALC_FOUND_ROWS |
а индексы он учитывать научился?
_____________
Блог ГО |
Таблица символов Юникода |
Графомания
Игорь_Vasinsky
4.02.2013 - 17:11
ооО.. скока лет скока зим. как то я у тебя на пыхе неделю жил) читал и читал)
_____________
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
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.