MySQL表名映射方案及擴展應用

發表于:2013-12-31來源:IT博客大學習作者:丁奇點擊數: 標簽:MySQL
數replicate-rewrite-db 及應用 這個參數是官方版本自帶的。配置格式為 replicate-rewrite-db = from_db -> to_db。 同步效果為將所有在from_db上的操作都修改為對to_db的操作。

  這篇文章介紹的簡單方案應用于如下需求:主庫為了性能考慮,作分庫分表,從庫則上為了多索引查詢等需求,不作分表。

  參數replicate-rewrite-db 及應用

  這個參數是官方版本自帶的。配置格式為 replicate-rewrite-db = from_db -> to_db。 同步效果為將所有在from_db上的操作都修改為對to_db的操作。

  例子:

  因此可以在主庫上做分庫,如需要將表abc分成10個,則主庫上建10個db, 名字為sdb_1, sdb_2, … , sbd_10, 從庫上則只有一個庫sdb.

  在從庫my.cnf中配置10行,第一行為replicate-rewrite-db = sdb_1 -> sdb,以此類推。

  存在的問題

  這個參數能夠解決一部分問題,但是對于單庫內的分表則無法解決。而且若分庫多了,比如需要建立1024個庫,一來維護麻煩,二來my.cnf里面配置好長.

  還有一個很要命的問題是,對于有些應用是按照時間分表,比如按月份新增表,若用此方法新增庫,修改my.cnf則還需要重啟slave。

  另外,并不是所有的表都需要分表,庫級別的映射方案也有諸多不便。

  參數replicate-wild-rewrite-table

  這個新增的參數目的就是要解決上面說到的問題。配置格式如下:

  replicate-wild-rewrite-table=sdb.abc_% -> sdb.abc.

  從庫上同步效果為,將sbd庫內所有符合abc_%格式的表的DML操作,都執行到 sdb.abc表中。

  幾點說明

  1、 這個patch(代碼)基于Percona Server 5.5.18 (淘寶MySQL分支目前基于這個版本)

  2、 只對row based replication的有效

  3、 只對dml有效

原文轉自:http://blogread.cn/it/article/5512

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97