1. 程式人生 > >mysql分庫分表技術選型時需要注意的點

mysql分庫分表技術選型時需要注意的點

首先需要明確的一些概念和問題:

  1. 原先:一個庫一張表,即db和table。水平拆分之後:多個庫多張表,即 { db1,db2,db3,… } 和 { table1,table2,table3,… },假設現在有物理機器 { server1,server2,server3,… },那麼這三者之間的對應分配關係是?是一對多還是一對一?
  2. 在中介軟體看來,shard指的是db這個維度?

中介軟體目前對sql的支援情況

  1. 支援的特性?比如讀寫分離,select … for update等等
  2. 不支援的特性?比如join,分散式事務等等

現狀和使用

  1. 有哪些公司和專案正在使用這個中介軟體?
  2. client如何接入此中介軟體?
    i. 分片鍵的定義
    ii. client連線中介軟體
  3. 中介軟體目前是否支援自動擴容縮容?

中介軟體的機制和原理

  1. 分片鍵和shard的對映關係?hash?取模?
    猜測:字串用hash,數字用取模猜測:字串用hash,數字用取模
  2. insert一行,如何確定是插入到哪個shard還是新增一個shard?同上個問題
  3. client如何感知這條sql語句是否會跨shard?
    猜測:中介軟體會返回此類資訊猜測:中介軟體會返回此類資訊