Data Query Language¶
Data Query Language — команды языка SQL, читающие данные (как
сгенерированные, так и уже находящиеся в таблицах). Для чтения данных из
таблиц используется команда SELECT.
Синтаксис¶
Параметры¶
-
SQL_VDBE_OPCODE_MAX — ограничение на максимальное количество инструкций при исполнении локального плана (VDBE) на узле кластера.
-
SQL_MOTION_ROW_MAX — ограничение на максимальное число строк в результирующей виртуальной таблице, собирающей результаты отдельных локальных запросов.
-
READ_PREFERENCE — предпочтительная стратегия чтения данных с репликасета. Допустимые значения:
LEADER(по умолчанию) — чтение производится только с лидеров репликасетов. Это безопасная и рекомендуемая стратегия, так как vshard контролирует перемещение бакетов только на лидерах. В неблокирующем SQL чтение всегда выполняется с лидеров, другие значения опции вернут ошибку.ANY— чтение производится с ближайшей доступной реплики, а при её отсутствии — с лидера. Если запрос может быть полностью выполнен через локальный fast-path на экземпляре, куда он пришёл (например, запрос маршрутизируется в локальный репликасет или весь целевой tier локален), то Picodata выполняет его на текущем экземпляре, включая лидера. Это поведение уменьшает число сетевых пересылок для локальных запросов. Важно: во время выполнения DQL-запросов не должно быть пишущей нагрузки и изменений топологии кластера. Это помогает избежать перемещения бакетов, которое может привести к неконсистентным результатам. Использование этой стратегии помогает лучше утилизировать ресурсы.REPLICA— чтение производится только с ближайшей доступной реплики, а при её отсутствии запрос возвращает ошибку. Если запрос может быть полностью выполнен через локальный fast-path на экземпляре, куда он пришёл, то этот fast-path используется только на реплике. Если тот же запрос приходит на лидер, Picodata отправляет его на доступную реплику обычным маршрутом, а не исполняет локально. Требования к отсутствию пишущей нагрузки и изменений топологии аналогичныANY.