Пагинация и производительность LIMIT на больших списках.

fixxxer

К.О.
Партнер клуба
Изначальные требования всегда можно обсудить. Может, предложение сделать навигацию "как в твиттере" прекрасно устроит? И это тоже будет решением.

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

alekciy

Новичок
ну а что с фултекст индекс пихать? мне то искать не надо - мне сортировать и считать позицию надо :)
А кто говорит о полнотекстовом поиске Оо? Sphinx это не только ценный мех полнотекстовой поиск, но и два-три килограмма мяса быстрый поиск просто по данным. В том числе и числовым.
 

alekciy

Новичок
А как же спортивный интерес, а как же решение трудной задачи хотя бы в целях саморазвития и не задумываясь что все кричат на каждом углу, и дойти свим умом? Или проще тупо копипастить?
Там, где это по условиям бизнес задачи это нужно делается кастомное решение на сях, а то и ассемблере вовсе. Причем не портируемое из проекта вовсе. Универсальное решение ни кому не нужно, если есть готовые варианты. И как видишь не интересны на столько, что даже из спортивного интереса как-то не спешат люди этим заняться. Как по мне, интересно решать полезные, востребованные задачи. Имхо, такой императив работает у большинства разработчиков.
 

Yoskaldyr

"Спамер"
Партнер клуба
быстрый поиск просто по данным. В том числе и числовым.
так искать НИЧЕГО не надо - надо взять записи с нужными порядковыми номерами. Как это сделать в сфинксе? Погуглю может что и накопаю, но как то не верится что будет быстро - задача сфинкса выдавать релевантные записи на поисковый запрос - нумеровать список - это слишком далеко от поиска.
Изначальные требования всегда можно обсудить. Может, предложение сделать навигацию "как в твиттере" прекрасно устроит? И это тоже будет решением.
но пагинация - это же частный случай...
можно придумать/написать уйму вариантов при работе со стат данными, которых может быть вагон и маленькая тележка, и тогда не прокатит что это не нужно - надо именно так а не иначе.
 

Yoskaldyr

"Спамер"
Партнер клуба
Как по мне, интересно решать полезные, востребованные задачи. Имхо, такой императив работает у большинства разработчиков.
Но самая востребованная задача писать уйму дешевого говнокода (это если говорить о самой массовости и востребованности). Вы хотите таким заниматься? Лично я - нет.
 

alekciy

Новичок
так искать НИЧЕГО не надо
Ассоциировать sphinx с чисто поисковым движком не правильно. Более корректно считать его демоном-индекса. В контексте пробежки по числовым данным он будет по сути близок к текущей схеме работы с redis, но обеспечит sql-подобный синтаксис. Было бы неплохо заиметь прокси который бы оправлял запросы imsert как на mysql, так и sphinx к примеру. Опять же может в будущем потребуются сортировки с limit или другие плюшки.

Это не означает, что предложенный вариант будет быстрее/удобнее текущего в данном проекте. Но нахожу, что потенциал у данной схемы есть и он достаточен что бы все же попробовать его использовать.
 

Yoskaldyr

"Спамер"
Партнер клуба
Это не означает, что предложенный вариант будет быстрее/удобнее текущего в данном проекте. Но нахожу, что потенциал у данной схемы есть и он достаточен что бы все же попробовать его использовать.
одним словом будем надеяться что limit у сфинкса быстрее будет...
Тогда уже имеет смысл попробовать и плагины других типов таблиц - ту же mroonga, может там как-то по другому работа с limit-ом будет
 

MiksIr

miksir@home:~$
А может мне кто расскажет как редис со своими sorted set хранит ранк (порядковый номер)? Или он его все же не хранит?
 

Yoskaldyr

"Спамер"
Партнер клуба
А может мне кто расскажет как редис со своими sorted set хранит ранк (порядковый номер)? Или он его все же не хранит?
У редиса даже 2 формата хранения для сортированных списков (да для большинства расширенных структур), для случаев небольших списков (более компактная запись) и для всех остальных случаев. Где-то был пост разработчиков, где обе структуры детально описывались (скорость работы и размер занимаемой памяти), но сейчас врядли его найду :(
Формат хранения базы на диске - не изменен уже очень давно и это обычный текст. Мне достаточно знать что есть такой функционал и что он работает. По какому алгоритму вычисляется ранк (порядковый номер) и используя какие структуры - лично мне не интересно в данный момент, т.к. редис у меня пока не был узким местом в приложениях.
 

alekciy

Новичок
Где-то был пост разработчиков, где обе структуры детально описывались (скорость работы и размер занимаемой памяти), но сейчас врядли его найду :(
Сильно подозреваю, что речь про "The Little Redis Book". Потому как официальный "A fifteen minute introduction to Redis data types" явно покороче будет.
 

Yoskaldyr

"Спамер"
Партнер клуба
Сильно подозреваю, что речь про "The Little Redis Book". Потому как официальный "A fifteen minute introduction to Redis data types" явно покороче будет.
Точно не это, т.к. там был больше новостной пост о новых фичах, когда вводили компактную запись, но были и технические спецификации и бенчмарки. Тогда редис везде пиарился и светился где только можно.
Но эта дока очень неплоха и ее как раз ее можно рекомендовать в дополнение к официальной.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
ТС-у нужно не решение для реализации бизнес-логики, а такое решение, которое удовлетворит его личные эмоциональные и, главное, неозвученные требования.

прости, Yoskaldyr, тебе никто не поможет
даже не знаю, что тебе посоветовать: девушку найди, или, наоборот, расстанься :)
желания твои явно не технического характера
 

Yoskaldyr

"Спамер"
Партнер клуба
прости, Yoskaldyr, тебе никто не поможет
даже не знаю, что тебе посоветовать: девушку найди, или, наоборот, расстанься :)
желания твои явно не технического характера
Зачем писать, если сказать нечего?
Вопрос стоял вообще-то конкретный и полностью технического характера. Если Вы его не поняли - это уже совсем другой вопрос и тут уже Вам никто не поможет.

P.S. Ладно, и так уже понятно что почти никто с редисом не работал и почти все считают что это аналог мемкеша, поэтому топик можно закрывать.
 

MiksIr

miksir@home:~$
P.P.S. Да и так понятно, что Yoskaldyr на прошлой недели узнал, что такое редис и решил похвастаться. Но не напишешь просто "ух, редис круто". Вот и придумал он такую замануху про limit, что бы свое знание sorted set показать.
Других причин столь странной постановки вопроса в первом сообщении и фапания на редис во остальных не вижу.
 

Yoskaldyr

"Спамер"
Партнер клуба
P.P.S. Да и так понятно, что Yoskaldyr на прошлой недели узнал, что такое редис и решил похвастаться. Но не напишешь просто "ух, редис круто". Вот и придумал он такую замануху про limit, что бы свое знание sorted set показать.
Других причин столь странной постановки вопроса в первом сообщении и фапания на редис во остальных не вижу.
У-у-у... как все запущено.
Продолжать даже не буду. Если включите мозг и сможете погуглить, то найдете мои сообщения насчет редиса в инете.
 
Сверху