|
|
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
авторПо условию задачи нужно вернуть набор записей, а не "один результат". наборзаписей - это что такое? результат селекта - это не набор записей? хранимка может возвращать множество различных селектов, множество результатов или ещё как назови. то что, как правило, используют хранимку для возвращения результатов вычисления только по одному селекту, не означает, что хранимка не может вернуть несколько различных селектов.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 13:55:38 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
вадя, Да, результат селекта - это набор записей. Приложение должно получить этот набор. И по вашим словам получается, что если воткнуть посередине прослойку из хранимой процедуры, то получится быстрее. А я вот не вижу этого "быстрее". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 14:24:49 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
быстроту можно оценить только в конкретном случае, сравнивая различные реализации во всех других случаях - только оценочно и что такое "быстро" - для меня это результат работы системы, всех звеньев в целом. в применение к данному случаю, экономию времени можно получить сократив операции обращения к mysql серверу (работа драйверов и пр. "прослоек"). даже если сделать аналогичные операции в самой хранимке (циклы и прочее) уже будет быстрее. при необходимости использование временных таблиц в памяти и пр. теже курсоры, по большому счету они организуются в программе, обращающейся за данными к mysql, только называются иначе... тут уже работает понимание и опыт работы с mysql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:13:45 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
не воткнуть прослойку их хранимки, а заменить кучу обращений к серверу через селекты, к одному обращению через хранимку. и на выходе хранимки получить готовый, конечный результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:16:31 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
вадяне воткнуть прослойку их хранимки, а заменить кучу обращений к серверу через селекты, к одному обращению через хранимку. и на выходе хранимки получить готовый, конечный результат.Не кучу, а несколько селектов. Кстати, стоимость обращения к серверу не так уж и велика. И вообще ничтожна по сравнению с физическим вводом/выводом, если данные вдруг не в кэше. А вот хранимке понадобятся накладные расходы на промежуточное сохранение результата. И еще один дополнительный селект на его чтение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:49:02 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
в итоге сделал через поочередное дерганье с LIMIT 0 , 1 получилось очень быстро и чисто в плане работы с транзакциями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 16:16:42 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
profitrushв итоге сделал через поочередное дерганье с LIMIT 0 , 1 получилось очень быстро и чисто в плане работы с транзакциямиа покажите, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 16:18:39 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
miksoftвадяпропущено... что значит вытащить из хранимки данные? хранимка должна возвратить одни результат - конечный. это намного меньше чем многократное обращение к базе через селектПо условию задачи нужно вернуть набор записей, а не "один результат". опачки, тогда походу лучше резать переменными. в секцию веар добавить. и делать селект с лимитом.... по аналогии с тем как мы нумеруем записи в выборке. не уверен, но чтоб мускл не путать при сложной секции веар лучше селект * из (запрос общий с лимит с запасом) а где --- фильтр переменной суматором ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:09:26 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
авторНе кучу, а несколько селектов. Кстати, стоимость обращения к серверу не так уж и велика. И вообще ничтожна по сравнению с физическим вводом/выводом, если данные вдруг не в кэше. А вот хранимке понадобятся накладные расходы на промежуточное сохранение результата. И еще один дополнительный селект на его чтение. ну да обращение к серверу чего? из пхп, java и пр. через драйверы? несколько и один - уже есть разница в несколько раз. накладные расходы в хранимке намного меньше, чем расходы на обращение к серверу, и откуда дополнительный селект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:10:00 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
ну и по ходу данных... обработка в си, ну java, ещё можно говорить о быстодействии, а интерпритаторы типа php, с обработкой данных по сравнению с mysql явно проигрывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:16:52 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
вадяавторНе кучу, а несколько селектов. Кстати, стоимость обращения к серверу не так уж и велика. И вообще ничтожна по сравнению с физическим вводом/выводом, если данные вдруг не в кэше. А вот хранимке понадобятся накладные расходы на промежуточное сохранение результата. И еще один дополнительный селект на его чтение. ну да обращение к серверу чего? из пхп, java и пр. через драйверы? несколько и один - уже есть разница в несколько раз. накладные расходы в хранимке намного меньше, чем расходы на обращение к серверу, и откуда дополнительный селект? думаю сдесь дело даже в другом. если хранимка выбрала записи , они все в памяти, и если записей 10, то не факт что было 10 чтений с шдд(если они рядом лежали) + парсинг 10 селектов(если не через подготовленные запросы) тоже время. и собсвенно то что помогает хранимке влпане кеширования буферизации, не поможет 10 отдельным обращениям на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:19:27 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
вадянакладные расходы в хранимке намного меньше, чем расходы на обращение к серверу,по мне, так наоборот... вадяи откуда дополнительный селект?хранимка же должна результат как-то наружу выдать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:48:31 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
miksoftа покажите, плиз. полностью скопировать не могу, распишу примерно как Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:58:48 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
profitrush, А почему не хотите увеличить LIMIT, чтобы сократить те самые "обращения к серверу" ? И, кстати, программа застрянет, когда две одинаковые цены случатся. Я не просто так танцы с id делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 18:01:59 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
miksoft, у меня ничего не застревает, сегодня тестил с одинаковыми ценами а где именно там можно застрять? да LIMIT увеличу до 50 или 100, скорее всего сделаю функцию которая будет логически выдавать размер лимита в зависимости от цены если цена мелкая то 50, если огромная то 300 или 500 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 18:07:00 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
profitrushу меня ничего не застревает, сегодня тестил с одинаковыми ценами а где именно там можно застрять?тут: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 18:10:11 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
miksoft, я бы ещо спросил зачем рекурсия. хотя ответ понятень из строчек кода Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 18:11:09 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
miksoftвадянакладные расходы в хранимке намного меньше, чем расходы на обращение к серверу,по мне, так наоборот... вадяи откуда дополнительный селект?хранимка же должна результат как-то наружу выдать. обращение к серверу идет через драйвер - это тоже время обращение к серверу подразумевают и передачу данных обратно и данные передаются не ссылкой, а копированием с преобразованием типов. и чем больше данных - тем больше таких копирований (передача значений, а не ссылок) а селект не должен? данные на выходе переданного селекта и хранимки - одинаковы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 18:33:14 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
вадя, тут не очем спорить, хранимка и серия запросов, это аналог серии аджаксов вместо одного. только во втором случае задержки ощутимей, но принцип тотже. на каждый запрос выделяеться память, инициализируються переменные сессии - копирование...да одно это даёт добавку для серии запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 20:03:33 |
|
||
|
Как сделать выборку ограниченную по сумме колонки
|
|||
|---|---|---|---|
|
#18+
alex564657498765453miksoft, я бы ещо спросил зачем рекурсия. хотя ответ понятень из строчек кода Код: sql 1. 2. не все такие крутые программисты, пишу как могу и умею ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 20:35:14 |
|
||
|
|

start [/forum/topic.php?fid=47&startmsg=38615294&tid=1834977]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 304ms |

| 0 / 0 |
