@Igorek98

Лучше делать перезапись в столбец или оставлять вычислением?

Столкнулся с такой мыслью.
У нас есть столбец, значения которого мы можем вычислять для получения результата.
(взять значение одного, сложить с другим, умножить на третье и добавить четвертое).

Но не будет ли лучше, если мы его будет всегда перезаписывать и сохранять для поиска по нему в отдельном столбце?
Или подсчёт 2-4 значений из разных столбцов не нагружают особо БД и лучше это значение оставить вычисляемым?
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вы можете создать вычислимое поле (generated column), как хранимое, так и виртуальное.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@DimaIs
Тут стоит исходить из того, что операции create/update происходят единожды и с одной конкретной строкой, в отличие от того же чтения. Гипотетический пример: у нас есть N записей, для их создания нам N раз придется складывать M столбцов. Допустим, что таблица у нас неотсортированная и без индексов. Тогда для поиска одного элемента нам придется в среднем N / 2 раз сложить M столбцов, что уже даже при единичных операциях поиска убьет весь наш "выигрыш" от отказа вычислять эти столбцы при создании/обновлении. Выбор очевиден
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы