SELECT
[STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]
[DISTINCT | DISTINCTROW | ALL]
select_list
[INTO {OUTFILE | DUMPFILE} 'file_name' export_options]
[FROM table_references [WHERE where_definition]]
[GROUP BY col_name,...] [HAVING where_definition]
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
[LIMIT [offset,] row_count] [PROCEDURE procedure_name]
| 關鍵字 | 作用 | 適用場景 |
|---|---|---|
| STRAIGHT_JOIN | 強制按 FROM 順序聯表 | 優化器選錯聯表順序導致慢查詢時 |
| SQL_SMALL_RESULT | 結果集小,用臨時表而非排序 | GROUP BY/DISTINCT 結果確定很小 |
| SQL_BIG_RESULT | 結果集大,用排序而非臨時表 | GROUP BY/DISTINCT 結果確定很大 |
| HIGH_PRIORITY | 比 UPDATE 更高優先級執行 | 極高優先級的即時查詢 (慎用) |
💡 **實戰建議**:99% 場景 **無需** 這四個提示,優化器通常更聰明。
SELECT * INTO OUTFILE '/tmp/export.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
FROM tbl;
SELECT 1 + 1; -- → 2 (計算器)
SELECT NOW(); -- 當前時間
SELECT @var := 100; -- 變量賦值
SELECT UUID(); -- 生成 UUID
這是 MySQL 特有能力,常用於應用層借用資料庫函數計算。