22. When SPIDER is right for you? What cases should you use SPIDER?
Spiderは以下のような要件がある場合に、
利用をご検討ください。
3.任意のルールでシャーディングを行いたい
場合
4.シャーディングと一貫性が同時に必要である
場合
32. Spiderのセットアップ(2/5)
1対1Spiderテーブルの作成
CREATE TABLE t1(
c1 int,
c2 varchar(100),
PRIMARY KEY(c1)
)ENGINE=spider DEFAULT CHARSET=utf8
COMMENT '
table "rt1", database "test", port "3306",
host "host name of data node",
user "user name for data node",
password "password for data node"
';
Engine名に“Spider”を指定し、接続情報とパラメータを
Commentに記載する。
34. Spiderのセットアップ(4/5)
1対多(シャーディング)Spiderテーブルの作成
CREATE TABLE t1(
c1 int,
c2 varchar(100),
PRIMARY KEY(c1)
)ENGINE=spider DEFAULT CHARSET=utf8
COMMENT 'table "rt1", database "test", port "3306",
user "user name for data node", password "password for data node"'
PARTITION BY RANGE(c1) (
PARTITION p0 VALUES LESS THAN (100000) COMMENT 'host "h1"',
PARTITION p1 VALUES LESS THAN (200000) COMMENT 'host "h2"',
PARTITION p2 VALUES LESS THAN (300000) COMMENT 'host "h3"',
PARTITION p3 VALUES LESS THAN MAXVALUE COMMENT 'host "h4"'
);
共通の接続情報をテーブルのCommentに記載する。
シャード毎に異なる接続情報をパーティションのCommentに記載する。
35. Spiderのセットアップ(5/5)
“CREATE SERVER”コマンドで接続情報を事前に定義することも可能です。
CREATE SERVER srv1
FOREIGN DATA WRAPPER mysql
HOST 'host name of data node',
DATABASE 'test',
USER 'user name for data node',
PASSWORD 'password for data node',
PORT 3306
;
上記で定義したサーバ定義は、SpiderではCommentに“server”パラメータ
として記述することができます。
CREATE TABLE t1(
c1 int,
c2 varchar(100),
PRIMARY KEY(c1)
)ENGINE=spider DEFAULT CHARSET=utf8
COMMENT 'table "rt1", server "srv1"';