29. 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