Это говорит о том, что MV CC создает отдельный снимок для каждого одновременного запроса. Разве этот подход не является неэффективным с точки зрения памяти?
Можно утверждать, что это неэффективно с точки зрения памяти. На практике это обычно не большая проблема.
Например, если есть 1000 одновременных запросов и размер таблицы огромен.
Зачем вам нужно / нужно 1000 одновременных запросов? У вас есть 1000 процессоров? Если есть риск, что вы попытаетесь установить sh 1000 одновременных запросов, вам следует развернуть некоторый механизм контроля входа (например, пул соединений), который предотвращает это, с откатом до max_connections.
Это создаст несколько экземпляров таблицы.
Снимок не является копией таблицы. Это просто набор информации , который динамически применяется к строкам базовой таблицы, чтобы решить, какие строки видны в этом снимке. Размер моментального снимка пропорционален количеству одновременных транзакций (одна причина не имеет их 1000), а не размеру таблицы.