本文匯總 30+ 條高頻 MySQL 實戰筆記,涵蓋字符串填充、條件優化、分頁、聯表更新、聚合統計、UNION、排序、DDL、連接管理、編碼、日期時間、隨機抽樣、REPLACE、常見報錯等,適合開發者隨查隨用。
LPAD(str, len, padstr)、RPAD(str, len, padstr) 不足位補齊。LIMIT 實例:分頁 LIMIT offset, rows、大偏移優化(延遲關聯/子查詢)。UPDATE a JOIN b ON ... SET a.col = b.col WHERE ...。COUNT(*) vs DISTINCT 效率:COUNT(*) 走聚合索引最快;COUNT(DISTINCT col) 需去重,大表慎用。UNION 中用 LIMIT:需用括號包裹 (SELECT ... LIMIT n) UNION (SELECT ... LIMIT m)。ORDER BY 在 UNION 中:外層包裹 SELECT * FROM (UNION 查詢) t ORDER BY col。UNION vs UNION ALL:前者去重(臨時表+排序),後者直接合併,性能差數倍。SELECT 實例:列別名、條件構造、子查詢、窗口函數(8.0+)。ALTER TABLE 語法:加欄位、改類型、加索引、Online DDL 注意事項。INSERT INTO 用法:單行、多行、INSERT ... SELECT、ON DUPLICATE KEY UPDATE。DROP TABLE / DROP DATABASE:IF EXISTS 防報錯,生產環境謹慎執行。CREATE TABLE 實例:引擎選擇、字符集、分區、外鍵、生成列。mysql -h -u -p、\q/exit。INSERT INTO t VALUES (...), (...), ... 單次千行以內,配合事務。ALTER TABLE ... ADD/DROP/MODIFY COLUMN。SET PASSWORD、ALTER USER(5.7.6+)、mysqladmin。specified twice 解決:別名衝突、重複 JOIN 表需別名區分。SET NAMES utf8mb4、my.cnf 全鏈路配置。DAYOFMONTH、DAYOFYEAR、MONTH、DAYOFWEEK、WEEKDAY、TO_DAYS、日期比較。'' 轉義單引號、\" 轉義雙引號、參數化查詢徹底避免。ORDER BY RAND() LIMIT n 全表掃描 → 改用主鍵範圍隨機或 TABLESAMPLE(8.0+)。REPLACE() 函數:字符串替換,注意不支援正則。You can't specify target table for update in FROM clause:子查詢衍生表包裹 SELECT * FROM (SELECT ...) t 繞過限制。EXPLAIN 與 OPTIMIZER_TRACE。筆記無價,實踐出真知。