|
Обновление (не bulk) полей записи в БД
|
|||
---|---|---|---|
#18+
Предположим, есть некая форма (например HTML) с количеством полей более, к примеру, пяти. Стоит ли апдэйтить сразу все поля (если было хоть одно изменение) или колхозить динамику на нужные (измененные) поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 13:17 |
|
Обновление (не bulk) полей записи в БД
|
|||
---|---|---|---|
#18+
waszkiewicz, колхозь, колхозь, заодно и сбор статистики наколхозь о том, как часто меняют одно, два поля ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 13:25 |
|
Обновление (не bulk) полей записи в БД
|
|||
---|---|---|---|
#18+
waszkiewicz или колхозить динамику на нужные (измененные) поля? Это зависит от того будет ли одна запись изменяться двумя пользователями параллельно. Обычно такое напрочь не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:08 |
|
Обновление (не bulk) полей записи в БД
|
|||
---|---|---|---|
#18+
waszkiewicz Стоит ли Это зависит от того, какая БД, каков размер полей, поток и разнообразие обращений, на каком железе всё крутится - в общем, от того, где именно узкие места. Схематично: - Форма посылает изменения на сервер. Если суммарный размер полей значительный, и они не менялись, это напрасно грузит сеть, повышает вероятность обрыва соединения посередине передачи итп. Для клиентов в интернете первым фактором можно пренебречь, а вот второй в любом случае нехорош. - Сервер посылает изменения в БД и второй раз напрасно грузит сеть. - Если БД, например, Postgre, то она в любом случае, даже если пришёл один байт изменений, создаёт новую версию записи, копируя её целиком. То есть в этом месте разницы нет. - Если запись мелкая, меньше блока (страницы итп) на диске, то разницы в этом месте тоже, скорее всего, нет, хотя надо смотреть, как реализовано в конкретной БД. А вот если запись большая, то может быть довольно глупое переписывание нескольких страниц ровно теми же данными - либо считывание этих страниц с целью проверить, изменились ли они и нужно ли их переписывать. Отдельное веселье может быть с lob-ами, которые хранятся отдельно. - В любом случае, кроме страниц данных, СУБД в том или ином виде пишет журнал изменений. И в этот журнал, скорее всего, лягут все пришедшие поля - хотя опять же зависит от СУБД. То есть, журналы изменений запросто начнут содержать 95% бессмысленной информации, пухнуть в 20 раз быстрее, требовать в 20 раз больше места и среди прочего грузить ввод-вывод, который имеет все шансы стать узким местом системы - и как следствие, обслуживать в 20 раз меньше клиентов на том же железе. - С другой стороны, 2^n похожих запросов тоже могут доставить проблемы с кэшированием планов. В общем - надо смотреть по конкретной ситуации. Абстрактно - в принципе лучше делать, но не факт, что в конкретном случае оно того стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2020, 13:37 |
|
Обновление (не bulk) полей записи в БД
|
|||
---|---|---|---|
#18+
waszkiewicz Предположим, есть некая форма (например HTML) с количеством полей более, к примеру, пяти. Стоит ли апдэйтить сразу все поля (если было хоть одно изменение) или колхозить динамику на нужные (измененные) поля? если изменения независимы (т.е. новое состояние объекта в списке приемлемых состояний), то обязательно) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2020, 14:01 |
|
|
start [/forum/topic.php?fid=33&msg=39959432&tid=1547107]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 294ms |
total: | 440ms |
0 / 0 |