首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 實用筆記大全:從 LPAD/RPAD 到聯表更新、優化技巧 30+ 條

     編輯:MySQL 綜合教學

MySQL 實用筆記大全:從 LPAD/RPAD 到聯表更新、優化技巧 30+ 條

本文匯總 30+ 條高頻 MySQL 實戰筆記,涵蓋字符串填充、條件優化、分頁、聯表更新、聚合統計、UNION、排序、DDL、連接管理、編碼、日期時間、隨機抽樣、REPLACE、常見報錯等,適合開發者隨查隨用。

目錄索引

  1. 字符串填充:LPAD(str, len, padstr)、RPAD(str, len, padstr) 不足位補齊。
  2. WHERE 條件優化:等值優先、範圍次之、避免函數包裹列、覆蓋索引。
  3. LIMIT 實例:分頁 LIMIT offset, rows、大偏移優化(延遲關聯/子查詢)。
  4. 多表聯表更新:UPDATE a JOIN b ON ... SET a.col = b.col WHERE ...。
  5. COUNT(*) vs DISTINCT 效率:COUNT(*) 走聚合索引最快;COUNT(DISTINCT col) 需去重,大表慎用。
  6. UNION 中用 LIMIT:需用括號包裹 (SELECT ... LIMIT n) UNION (SELECT ... LIMIT m)。
  7. ORDER BY 在 UNION 中:外層包裹 SELECT * FROM (UNION 查詢) t ORDER BY col。
  8. UNION vs UNION ALL:前者去重(臨時表+排序),後者直接合併,性能差數倍。
  9. SELECT 實例:列別名、條件構造、子查詢、窗口函數(8.0+)。
  10. ALTER TABLE 語法:加欄位、改類型、加索引、Online DDL 注意事項。
  11. INSERT INTO 用法:單行、多行、INSERT ... SELECT、ON DUPLICATE KEY UPDATE。
  12. DROP TABLE / DROP DATABASE:IF EXISTS 防報錯,生產環境謹慎執行。
  13. CREATE TABLE 實例:引擎選擇、字符集、分區、外鍵、生成列。
  14. PHP 連接 MySQL:PDO/mysqli 預處理、連接池、錯誤模式。
  15. 命令行連接/斷開:mysql -h -u -p、\q/exit。
  16. 批量插入:INSERT INTO t VALUES (...), (...), ... 單次千行以內,配合事務。
  17. 欄位增刪改:ALTER TABLE ... ADD/DROP/MODIFY COLUMN。
  18. 修改密碼:SET PASSWORD、ALTER USER(5.7.6+)、mysqladmin。
  19. specified twice 解決:別名衝突、重複 JOIN 表需別名區分。
  20. 中文亂碼解決:SET NAMES utf8mb4、my.cnf 全鏈路配置。
  21. 日期函數:DAYOFMONTH、DAYOFYEAR、MONTH、DAYOFWEEK、WEEKDAY、TO_DAYS、日期比較。
  22. 單引號/雙引號轉義:'' 轉義單引號、\" 轉義雙引號、參數化查詢徹底避免。
  23. 隨機抽樣優化:ORDER BY RAND() LIMIT n 全表掃描 → 改用主鍵範圍隨機或 TABLESAMPLE(8.0+)。
  24. REPLACE() 函數:字符串替換,注意不支援正則。
  25. You can't specify target table for update in FROM clause:子查詢衍生表包裹 SELECT * FROM (SELECT ...) t 繞過限制。

使用建議

  • 將高頻片段收藏為代碼片段庫,IDE 快捷調用。
  • 針對性能敏感點,必看 EXPLAIN 與 OPTIMIZER_TRACE。
  • 定期複盤慢查詢,沉澱優化模式。

筆記無價,實踐出真知。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved