Skip to content

MySQL

全球最普及的開源資料庫

軟體分類 程式開發 / 資料庫
軟體標籤
Stellarium語言學習MPLCreative Commons Attribution-ShareAlike 2.0 license
開發廠商 Oracle Corporation
Stars
12.3k
Forks
4.2k
License
GNU GPL V2
Version
v8.4.3 LTS
Update
2026-01-22
OS

產品說明

MySQL 是全球使用率最高的開源關聯式資料庫管理系統 (RDBMS)。作為經典 LAMP (Linux, Apache, MySQL, PHP/Python/Perl) 架構中的關鍵一環,它支撐了從個人部落格(如 WordPress)到全球最大型科技公司(如 Facebook, Uber, Google)的資料儲存需求。

雖然被 Oracle 收購後,社群分支出現了 MariaDB,但 MySQL 依然保持著強勁的開發動能。其核心優勢在於可插拔的儲存引擎 (Pluggable Storage Engines) 架構,最著名的 InnoDB 引擎提供了完整的 ACID 交易支援與列級鎖定 (Row-level Locking),在高併發寫入時表現優異。此外,MySQL 的複製架構 (Replication) 非常成熟,是建置高可用性叢集與讀寫分離環境的標準選擇。

核心特色:

  • 儲存引擎架構:獨特的設計允許使用者依需求選擇引擎。InnoDB 是預設且最強大的選擇,支援交易與外鍵;MyISAM 則適合唯讀或全文檢索場景(雖然已漸被 InnoDB 取代)。
  • 極高的普及率:擁有世界上最大的開發者社群與文件資源,幾乎所有的 Web 框架與 Hosting 服務都優先支援 MySQL。
  • 成熟的複製技術:支援非同步 (Asynchronous)、半同步 (Semisynchronous) 與群組複製 (Group Replication),可輕易達成資料備援與災難復原。
  • MySQL Shell:新一代的高階客戶端工具,支援 SQL、JavaScript 與 Python 腳本,並能直接操作 JSON 文件 (X DevAPI)。
  • 效能優化:最新版本引入了 Hash Join、Explain Analyze 與雙密碼支援,查詢優化器 (Query Optimizer) 的效能大幅提升。

常用指令

雖然 MySQL Workbench 是官方推薦的 GUI 工具,但對於伺服器管理與故障排除,命令列客戶端 (mysql CLI) 仍然是必須掌握的技能。

連線與基礎操作

# 以 root 身分連線 (系統會提示輸入密碼)
mysql -u root -p

# 連線到遠端伺服器
mysql -h 192.168.1.10 -u user -p db_name

# 備份指定資料庫 (邏輯備份)
mysqldump -u root -p my_database > backup.sql

# 還原資料庫
mysql -u root -p my_database < backup.sql

MySQL Console 內部指令

進入 mysql> 提示符後,使用以下 SQL 指令進行管理:

指令功能說明備註
SHOW DATABASES;列出所有資料庫查看伺服器上有哪些庫
USE db_name;切換資料庫選擇要操作的資料庫
SHOW TABLES;列出資料表查看當前資料庫中的表
DESCRIBE table_name;查看表結構顯示欄位名稱、型別與索引
SHOW PROCESSLIST;查看執行緒列出當前正在執行的查詢 (除錯鎖死用)
SHOW STATUS;伺服器狀態查看連線數、運作時間等統計資訊
SHOW VARIABLES LIKE '%max%';查看設定變數查詢伺服器參數 (如 max_connections)
source file.sql;執行 SQL 檔在 Console 內直接執行外部 SQL 腳本
exit離開退出 MySQL Console

進階技巧

  • JSON 支援:MySQL 5.7+ 開始原生支援 JSON 型別。
    -- 建立包含 JSON 欄位的表
    CREATE TABLE events (id INT, browser_info JSON);
    -- 查詢 JSON 內部的特定 key
    SELECT id, browser_info->>"$.name" FROM events;
    
  • 慢查詢日誌 (Slow Query Log):開啟此功能可記錄執行時間超過指定秒數的 SQL 語法,是效能調校的第一步。
  • EXPLAIN:在 SELECT 語法前加上 EXPLAIN,可以查看 MySQL 如何執行該查詢(使用了哪個索引、掃描了多少行),這是優化 SQL 的必備工具。

操作介面