為何要有效率的學習 MySQL
不管你是新手老手,當你踏進要學習 MySQL 時首先要了解的是對於你自已來說學習的重點在哪裡?就好像你打開了一本 IT 書你會優先的想要了解的是什麼?而這些重點通常可能來至於 MySQL 的官方文件、部落客的文章、或坊間書局賣的書。而這篇文章是我個人認為的重點,看官可參考參考。

Query 的回應時間
1:Query 回應時間愈短效能愈好
常用的方式有
EXPLAIN
Analyze slow queries
索引
1:Leftmost Prefix
2:這 5 個重點
○ WHERE
○ GROUP BY
○ ORDER BY
○ Covering Index
○ Join Tables
3:索引與資料大小的關系
資料儲存跟存取
1:網路存取可能很慢
2:刪資料是會大影響讀資料
資料庫切片(database sharding)
✅ 優點:
提高擴展性(Scalability)
可橫向擴展(scale out),透過增加伺服器來處理更多請求與資料。
改善效能(Performance)
每個查詢只需針對一個分片,大幅減少查詢範圍與資料量。
高可用性與容錯性
一個分片故障不會導致整個系統癱瘓(如果有容錯設計)。
更佳的負載平衡
可根據業務邏輯(如使用者ID)分配到不同分片,減少單機壓力。
❌ 缺點:
資料分片策略設計困難
需要根據業務特性精心設計分片鍵(Sharding Key),否則可能導致資料或負載不均。
跨分片查詢困難(Join/聚合)
無法輕易進行跨分片的 JOIN 或聚合操作,需要在應用層實現邏輯。
維護與部署複雜性提升
更多伺服器與分片意味着部署、備份、監控、容錯等都更為複雜。
資料遷移困難
如果需要重新分片或擴容,資料遷移成本高,風險大。
事務處理困難
跨分片的事務處理需要額外設計(如分散式事務),不如單庫簡單可靠。
雲端資料庫
1:網路掛載的儲存空間很慢
2:便宜的雲端效能不好。一分錢一份貨
3:雲端服務商不是資料庫管理員(DBA)自已仍要處理
4:雲端效能對於效能和成本都至關重要