Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
07.11.2011, 01:45
|
|||
---|---|---|---|
|
|||
Как правильно выбрать данные из БД? |
|||
#18+
Обдумываю проект биллинга для небольшого проекта предоставления услуг. Подскажите пожалуйста как правильно делать обрабоку записей оплат пользователей в БД: выбрать все сразу(нужно много памяти при большом количестве данных) одним запросом или поочередно отдельными запросами делать обработку каждой записи? Это касается не только обработки оплат, но и данных профиля пользователя(тарифный план, допустимий лимит, статус). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2011, 08:46
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
Зависит от того насколько нестандартный расчет, и какую БД используешь. Если операции относительно простые, то можно вообще ничего не тащить на клиента, а посчитать средствами СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2011, 10:10
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
mlevel, пачками. Например по 100 - 1000 записей (или за час, сутки итп). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2011, 12:25
|
|||
---|---|---|---|
|
|||
Как правильно выбрать данные из БД? |
|||
#18+
Думал сделать триггерами, но не кошерно как-то выносить всю логику расчета в БД. Если считать пачками, надо ставить какой-то флаг/метку на записи, что ее уже обработали? Получаеться так. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2011, 12:32
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
Объясни пожалуйста, как твой вопрос относится к теме форума (С/С++)? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2011, 13:32
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
mlevelДумал сделать триггерами, но не кошерно как-то выносить всю логику расчета в БД. Вообще-то вся логика в триггерах это идеальный вариант, т.к. база всегда находится в актуальном состоянии и не требует доп.расчетов для использования. Главный минус триггеров в том что не всегда их можно использовать из-за того что они требуют время на отработку, а это время не всегда есть в реальной системе. Тут все зависит от СУБД которую ты собрался использовать, поэтому лучше поспрашивать в профильном форуме, о чем выше намекнули ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2011, 17:04
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
Это делают хранимкой в конце периода. Тему нужно отсюда убрать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.02.2012, 21:23
|
|||
---|---|---|---|
|
|||
Как правильно выбрать данные из БД? |
|||
#18+
А если записей будет порядка нескольких сотен тысяч, как будет вести себя хранимая процедура? Думал сделать отдельным бинарником по cron: Код: sql 1. 2. 3. 4. 5.
Но опять же, если пользователей много(несколько сотен тысяч) и у каждого по 2-3 прайса, то наверно такая конструкцыя будет не оптимальная? Хотя насколько я знаю больших проектов типа UTM NetUP, LanBilling, Гидра вся логика работы с БД вынесена в отдельный демон. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.02.2012, 21:32
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
> А если записей будет порядка нескольких сотен тысяч, как будет вести себя > хранимая процедура? А если записей порядка нескольких сотен тысяч, то это уже неправильно, потому что нафига тебе столько записей ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.02.2012, 22:10
|
|||
---|---|---|---|
|
|||
Как правильно выбрать данные из БД? |
|||
#18+
Например сейчас есть порядка 10 000 клиентов, минимум 2 прайса у каждого. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2012, 16:10
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
mlevel Код: sql 1.
...наверно такая конструкцыя будет не оптимальная?.. звёздочка в селектах - зло. это как минимум не оптимально и лишено смысла. целесообразно юзать в качестве примеров для студентов, дабы сконцентрировать внимание на остальном. по вопросу... в зависиомости от сущностей на клиенте и делайте выборку. например если вы оперируете сущностью учётка(она одна) - то и качайте её. если вы юзаете логическую сущность - выборка по условиям - то юзайте запрос группы записей. 10 тысяч помноженное на три,.... это будет.... ... пять пишем семь на ум пошло... это будет... это будет копейки для нормальной субд. (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.03.2012, 02:16
|
|||
---|---|---|---|
|
|||
Как правильно выбрать данные из БД? |
|||
#18+
Более конкретно. Есть примерно такая, упрощенная структура: Код: sql 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
Каждый день нужно для каждого аккаунта начислять абонплату в зависимости от его тарифа/тарифов. Получаеться что-то такое нужно запускать по cron'у (было удобнее и быстрее писать на PHP, но не факт что работает): Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9.
Насколько это правильно? Модератор: Тема перенесена из форума "C++". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.03.2012, 03:08
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
mlevelНасколько это правильно? Мне трудно назвать вещь более неправильную. Возможно, в MySQL иначе никак - не знаю, а в нормальных СУБД это делается job-ом, выполняющим хранимку (которая в данном случае сводится к оператору insert / select, хотя в реальности будет посложнее). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.03.2012, 12:12
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9.
Насколько это правильно? Неправильно на миллион процентов, как уже сказали. MySQL ничем не хуже других, и делается это одним insert ... select. И нафига тебе вставлять пустые записи ? VALUES('', $account, $monet, NOW(), '' ,'') Надо сразу же вычислять нужные данные. 1-им селектом. Можно использовать хранимки, но пока тут не видно ничего, что вызывало бы строгую необходимость этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.03.2012, 16:26
|
|||
---|---|---|---|
|
|||
Как правильно выбрать данные из БД? |
|||
#18+
В реальности будет сложнее тем, что: 1. Провести начисление абонплаты, только при достаточном количестве средств на счету, а также при соответствующим статусе аккаунта. 2. В зависисти от некоторых условий сделать скидку от суммы начисленной абонплаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.03.2012, 11:29
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
mlevel, либо job + бизнес логика в БД либо ОРМ +бизнес логика на апп сервере. Есть часть народа, которая утверждает, что большинство биллинга по 2 варианту. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.03.2012, 12:34
|
|||
---|---|---|---|
Как правильно выбрать данные из БД? |
|||
#18+
Petro123Есть часть народа, которая утверждает, что большинство биллинга по 2 варианту. Это в случае а-ля риалтаймового биллинга. Тогда все необходимые данные прочно прописаны в памяти аппсервера и сразу за исчерпанием счёта следует отрубание соединения. Но никак не в варианте "взять с сервера миллион данных, сделать пару простых операций и запихнуть обратно". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=33&mobile=1&tid=1547892]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 296ms |
total: | 436ms |
0 / 0 |