|
virtual/stored columns в таблицах за и против
|
|||
---|---|---|---|
#18+
Привет! Познакомился недавно с вычисляемыми полями на уровне таблицы . С virtual/stored . Потестировал, почитал про ограничения на сайте mysql. Подскажите пожалуйста, есть ли их смысл вообще использовать? Или правильней работать с вычисляемыми значениями уже из view. А сами таблицы не трогать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 13:46 |
|
virtual/stored columns в таблицах за и против
|
|||
---|---|---|---|
#18+
Сергей Лалов есть ли их смысл вообще использовать? Stored - используются в основном для частовычисляемых выражений, особенно если те используются при связывании. Virtual - в основном только для индексируемых выражений для связывания. Сергей Лалов Или правильней работать с вычисляемыми значениями уже из view. Если стоИт задача максимальной производительности, и при этом не стоИт задача блокирования прямого доступа к данным, то про слово VIEW можно смело забыть. Впрочем, эту последнюю функцию с успехом выполняют хранимые процедуры - если не надо получаемый набор записей использовать как источник данных другого запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 15:56 |
|
virtual/stored columns в таблицах за и против
|
|||
---|---|---|---|
#18+
Akina, Спасибо за ответ!) Провел пару тестов с данным полем на стороне клиента. После линковки таких таблиц. Шустро отрабатывают. И индексировать можно. С virtual все ясно, немного не понял про отличия от stored. Ведёт при редактировании себя также. Насколько понимаю virtual рассчитывает вычисляемое значение при выборке (на момент обращения типа select) а stored во время редактирования, и + stored сохраняет вычисленное значение в этом поле, для дальнейшей работы с ним. Интересная технология. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 00:16 |
|
virtual/stored columns в таблицах за и против
|
|||
---|---|---|---|
#18+
Сергей Лалов С virtual все ясно, немного не понял про отличия от stored. Stored ничем не отличается от обычного поля, кроме того, что его значение рассчитывается, а не вставляется. Т.е. это поле должно заведомо отсутствовать в списке полей запроса на добавление (и соответственно уже не получится INSERT INTO table VALUES/SELECT - перечисление полей обязательно), и это поле нельзя обновлять. Virtual вообще не хранится в теле таблицы и либо рассчитывается в момент, когда его запрашивают, либо, извлекается из индекса, если таковой существует. Впрочем, оптимизатор запросто может организовать расчёт, если значение хоть есть в индексе, но этот индекс не используется в плане выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 07:32 |
|
|
start [/forum/topic.php?fid=47&msg=39989206&tid=1828417]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
130ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 233ms |
0 / 0 |