This is a read-only copy of the MariaDB Knowledgebase generated on 2024-11-14. For the latest, interactive version please visit https://mariadb.com/kb/.

Come applicare un limite o un timeout alle query

Questo articolo illustra i diversi metodi che possono essere usati per applicare un limite o un timeout alle query in MariaDB.

LIMIT

SELECT ... LIMIT num_righe
or
SELECT ... LIMIT scarto, num_righe
or
SELECT ... LIMIT num_righe OFFSET scarto

La clausola LIMIT riduce il numero di righe restituite.

MariaDB starting with 10.0.0

LIMIT ROWS EXAMINED

SELECT ... LIMIT ROWS EXAMINED num_righe;

Ferma la query dopo che sono state esaminate 'num_righe'.

SQL_SAFE_UPDATES

Se la variabile SQL_SAFE_UPDATES è impostata, non sarà possibile eseguire un'istruzione UPDATE o DELETE a meno che non si specifichi una clausola WHERE con una condizione su una chiave, oppure una clausola LIMIT (o entrambe).

SET @@SQL_SAFE_UPDATES=1
UPDATE nome_tab SET colonna_non_chiave=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 applica automaticamente LIMIT num_righe a tutte le query SELECT.

SET @@SQL_SELECT_LIMIT=1000
SELECT * from grande_tabella;

...si comporta come:

SELECT * from big_table LIMIT 1000;

SQL_MAX_JOIN_SIZE

Se SQL_MAX_JOIN_SIZE è impostata, limiterà tutte le istruzioni SELECT che probabilmente dovranno esaminare più di SQL_MAX_JOIN_SIZE righe.

SET @@SQL_MAX_JOIN_SIZE=1000;
SELECT count(null_column) from grande_tabella;
->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
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.