• SET query_cache_type= 0; // OFF
• SET query_cache_type = 1; // ON
• SET query_cache_type = 2; // DEMAND
• SELECT SQL_CACHE * FROM xxx ……
• SELECT SQL_NO_CACHE * FROM xxx ……
SELECT SQL_NO_CACHE /*+HINT */ * FROM …
SELECT /*+ HINT */ SQL_NO_CACHE * FROM …
SELECT /*+ HINT */ /*!40001 SQL_CACHE */
FROM …
SELECT /*+ HINT *//*!40001 SQL_CACHE */
FROM …
30.
SELECT SQL_NO_CACHE /*+HINT */ * FROM …
SELECT /*+ HINT */ SQL_NO_CACHE * FROM …
SELECT /*+ HINT */ /*!40001 SQL_CACHE */
FROM …
SELECT /*+ HINT *//*!40001 SQL_CACHE */
FROM …
NG: Hint が SELECT の直後でないので効かない
OK
OK
NG: スラッシュが連続するためパースエラー
31.
query cache からすると別クエリ
SELECT
/*+MAX_EXECUTION_TIME(1000) */
SQL_CACHE * FROM table;
SELECT
/*+ MAX_EXECUTION_TIME(2000) */
SQL_CACHE * FROM table;
32.
MAX_EXECUTION_TIME
• クエリ実行にタイムアウトを設定
• 5.7.8より前は MAX_STATEMENT_TIME
mysql> SELECT /*+ MAX_EXECUTION_TIME(1000) */ *
FROM big_table;
ERROR 3024 (HY000): Query execution was
interrupted, maximum statement execution time
exceeded