mysql分庫分表技術選型時需要注意的點
阿新 • • 發佈:2019-01-01
首先需要明確的一些概念和問題:
- 原先:一個庫一張表,即db和table。水平拆分之後:多個庫多張表,即 { db1,db2,db3,… } 和 { table1,table2,table3,… },假設現在有物理機器 { server1,server2,server3,… },那麼這三者之間的對應分配關係是?是一對多還是一對一?
- 在中介軟體看來,shard指的是db這個維度?
中介軟體目前對sql的支援情況
- 支援的特性?比如讀寫分離,select … for update等等
- 不支援的特性?比如join,分散式事務等等
現狀和使用
- 有哪些公司和專案正在使用這個中介軟體?
- client如何接入此中介軟體?
i. 分片鍵的定義
ii. client連線中介軟體 - 中介軟體目前是否支援自動擴容縮容?
中介軟體的機制和原理
- 分片鍵和shard的對映關係?hash?取模?
猜測:字串用hash,數字用取模猜測:字串用hash,數字用取模 - insert一行,如何確定是插入到哪個shard還是新增一個shard?同上個問題
- client如何感知這條sql語句是否會跨shard?
猜測:中介軟體會返回此類資訊猜測:中介軟體會返回此類資訊