Перейти к основному содержимому

Управление запросами

Количество пользовательских подключений

Property устанавливается на уровне пользователя. Чтобы установить максимальное количество подключений между клиентом и FE, используйте следующую команду.

ALTER USER '<username>' SET PROPERTIES ("key"="value", ...)

Свойства пользователя включают ресурсы, назначенные пользователю. Свойства, установленные здесь, относятся к пользователю, а не к user_identity. То есть, если два пользователя jack'@'% и jack'@'192.% созданы с помощью оператора CREATE USER, то оператор ALTER USER SET PROPERTIES может работать с пользователем jack, а не с jack'@'% или jack'@'192.%.

Пример 1:

-- Для пользователя `jack` изменить максимальное количество подключений на 1000
ALTER USER 'jack' SET PROPERTIES ("max_user_connections" = "1000");

-- Проверить лимит подключений для пользователя root
SHOW PROPERTY FOR 'root';

Переменные сессии, связанные с запросами

Переменные сессии можно установить с помощью 'key' = 'value', что позволяет ограничить параллелизм, память и другие параметры запросов в текущей сессии. Например:

  • parallel_fragment_exec_instance_num

    Параллелизм запроса со значением по умолчанию 1. Указывает количество экземпляров фрагментов на каждом BE. Вы можете установить это значение равным половине количества ядер CPU BE для улучшения производительности запросов.

  • query_mem_limit

    Лимит памяти запроса на каждом узле BE, может быть скорректирован, когда запрос сообщает о недостатке памяти.

  • load_mem_limit

    Лимит памяти для импорта, может быть скорректирован, когда задача импорта сообщает о недостатке памяти.

Пример 2:

set parallel_fragment_exec_instance_num  = 8; 
set query_mem_limit = 137438953472;

Квота емкости хранилища базы данных

Квота емкости хранилища базы данных по умолчанию неограничена. Вы можете изменить значение квоты, используя alter database.

ALTER DATABASE db_name SET DATA QUOTA quota;

Единицы квоты: B/K/KB/M/MB/G/GB/T/TB/P/PB

Пример 3:

ALTER DATABASE example_db SET DATA QUOTA 10T;

Завершение запросов

Чтобы завершить запрос на определенном подключении, используйте следующую команду:

kill connection_id;

connection_id можно увидеть с помощью show processlist; или select connection_id();.

 show processlist;
+------+------------+---------------------+-----------------+---------------+---------+------+-------+------+
| Id | User | Host | Cluster | Db | Command | Time | State | Info |
+------+------------+---------------------+-----------------+---------------+---------+------+-------+------+
| 1 | selenamgr | 172.26.34.147:56208 | default_cluster | selena_monitor | Sleep | 8 | | |
| 129 | root | 172.26.92.139:54818 | default_cluster | | Query | 0 | | |
| 114 | test | 172.26.34.147:57974 | default_cluster | ssb_100g | Query | 3 | | |
| 3 | selenamgr | 172.26.34.147:57268 | default_cluster | selena_monitor | Sleep | 8 | | |
| 100 | root | 172.26.34.147:58472 | default_cluster | ssb_100 | Sleep | 637 | | |
| 117 | selenamgr | 172.26.34.147:33790 | default_cluster | selena_monitor | Sleep | 8 | | |
| 6 | selenamgr | 172.26.34.147:57632 | default_cluster | selena_monitor | Sleep | 8 | | |
| 119 | selenamgr | 172.26.34.147:33804 | default_cluster | selena_monitor | Sleep | 8 | | |
| 111 | root | 172.26.92.139:55472 | default_cluster | | Sleep | 2758 | | |
+------+------------+---------------------+-----------------+---------------+---------+------+-------+------+
9 rows in set (0.00 sec)

mysql> select connection_id();
+-----------------+
| CONNECTION_ID() |
+-----------------+
| 98 |
+-----------------+


mysql> kill 114;
Query OK, 0 rows affected (0.02 sec)