MySQL-Proxy位於MySQL客戶端與伺服器之間的中介程式,內建Lua解釋器,支援對通訊封包的**分析、監控、轉換**,解鎖負載均衡、故障轉移、查詢分析、SQL巨集、查詢重寫、Shell命令執行等進階場景。
| 場景 | 實現方式 |
|---|---|
| 負載均衡與故障轉移 | Lua動態選擇後端節點、健康檢查自動摘除 |
| 查詢分析與日誌 | 攔截封包記錄SQL、執行時間、錯誤碼 |
| SQL巨集 | 客戶端發送簡化語法,Proxy展開為完整SQL |
| 查詢重寫 | 改寫低效SQL、自動加Hint、防注入過濾 |
| 執行Shell命令 | Luaos.execute()整合外部工具鏈 |
基本原理:主庫處理事務性查詢(INSERT/UPDATE/DELETE、BEGIN/COMMIT),從庫處理SELECT查詢。資料庫複寫將主庫變更同步至從庫叢集。

「為了實現讀寫分離我們需要連線池。我們僅在已建立向後端的經認證連線時,才切換至該後端。MySQL協議首先進行握手,進入查詢階段再認證新連線已太晚。我們必須保證擁有足夠的已打開連線才能正常運作。」
-- 讀寫分離核心邏輯 -- 發送所有非事務性SELECT至從庫
完整實作邏輯詳見下篇(ID: 90557)。
MySQL-Proxy將「資料庫中介層」從單純連線轉發升級為可程式化的智慧閘道,是MySQL叢集架構邁向高可用、高擴展的關鍵基礎設施。