MySQL
全球最普及的開源資料庫
軟體分類 程式開發 / 資料庫
軟體標籤
Stellarium語言學習MPLCreative Commons Attribution-ShareAlike 2.0 license
開發廠商 Oracle Corporation
產品說明
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 的必備工具。
操作介面

