Пределы запросов и таймауты
В этой статье описаны различные методы, которые MariaDB предоставляет для ограничения/таймаута запроса:
LIMIT
SELECT ... LIMIT row_count or SELECT ... LIMIT offset, row_count or SELECT ... LIMIT row_count OFFSET offset
Оператор LIMIT ограничивает количество возвращаемых строк.
LIMIT ROWS EXAMINED
SELECT ... LIMIT ROWS EXAMINED rows_limit;
Останавливает запрос после того, как было просмотрено заданное количество строк.
sql_safe_updates
Если переменная sql_safe_updates установлена, то нельзя выполнить оператор UPDATE или DELETE, если не указано ограничение по ключу в WHERE оператор или предоставлен LIMIT оператор (или оба).
SET @@SQL_SAFE_UPDATES=1 UPDATE tbl_name SET not_key_column=val; -> ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
sql_select_limit
sql_select_limit служит автоматическим LIMIT row_count для любого запроса SELECT.
SET @@SQL_SELECT_LIMIT=1000 SELECT * from big_table;
Вышесказанное эквивалентно:
SELECT * from big_table LIMIT 1000;
max_join_size
Если переменная max_join_size (также называемая sql_max_join_size) установлена, она ограничивает любые запросы SELECT, которые, вероятно, потребуют проверки более чем MAX_JOIN_SIZE строк.
SET @@MAX_JOIN_SIZE=1000; SELECT count(null_column) from big_table; ->ERROR 1104 (42000): The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
max_statement_time
Если переменная max_statement_time установлена, любой запрос (исключая хранимые процедуры), выполнение которого занимает более max_statement_time (указано в секундах), будет прерван. Это можно установить глобально, по сессии, а также по пользователю и по запросу. См. Прерывание операторов, выполнение которых занимает больше определенного времени.
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/query-limits-and-timeouts/