|
Операция uddate в таблицах с большим кол-вом записей
|
|||
---|---|---|---|
#18+
Добрый день У меня есть основная таблица - Список операций idnameid_contrname_contrid_projectname_project В этой таблице, чтоб уменьшить нагрузку при выборке я дублирую справочные значение (имя контрагента - name_contr, название проекта - name_project). Хочу избавиться от максимального кол-ва JOIN, чтоб уменьшить нагрузку и повысить скорость. Возникает проблема, когда в справочнике нужно будет обновить какое-то значение, то придется это значение обновить и в основной таблице - Список операций Вопрос 1. Целесообразно ли так делать 2. На сколько ресурсоемкая задача обновить текстовое поле(имя контрагента) в таблице по определенному id Скажем в таблице 100 млн. записей. Обновление затронет 1 млн. записей. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 09:16 |
|
Операция uddate в таблицах с большим кол-вом записей
|
|||
---|---|---|---|
#18+
NewLine 1. Целесообразно ли так делать Если вам нужно максимально быстро выгрузить csv-файл (например для интеграции с другой АС), то может быть целесообразно. А если у вас много OLTP-запросов, требующих полного сканирования таблицы (например, поиск, для которого не может быть использован индекс), то это скорее вредно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 09:21 |
|
Операция uddate в таблицах с большим кол-вом записей
|
|||
---|---|---|---|
#18+
NewLine 1. Целесообразно ли так делать 2. На сколько ресурсоемкая задача обновить текстовое поле (имя контрагента) в таблице по определенному id Скажем в таблице 100 млн. записей. Обновление затронет 1 млн. записей. 2) Зависит в т.ч. от количества сессий, и что клиенты делают. Если у вас к БД обращаются тысячи пользователей, которые забирают/обновляют/добавляют данные в эту таблицу и связанные с ней, то что произойдет когда вы решите обновить данные в миллионе записей - вопрос. Хорошего вряд ли. Если к БД обращается 1.5 клиента в час, то можно попробовать. Но судя по тому, что у вас 100 млн. операций, их кто-то должен производить в таком количестве. Создайте тестовую БД, сделайте прикидочные прогоны и посмотрите на результат. Потому что он может быть как приемлемым в конкретном случае, так и неприемлемым - уравнение со многими неизвестными. Если что, можно поднять аппаратные ресурсы, подумать над оптимизацией архитектуры. Возможно имеет смысл разделить данные по нескольким таблицам. Например, на текущие и (условно) архивные. Или, например, по видам операций. Тогда у вас появится возможность манёвра между 100 млн. записей. Но это я фантазирую, что у вас за проект неизвестно и каких параметров быстродействия вы хотите достичь тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2020, 14:06 |
|
|
start [/forum/topic.php?fid=47&fpage=19&tid=1828508]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
others: | 309ms |
total: | 452ms |
0 / 0 |