spider存储引擎

1.spider 安装

1.1.MariaDB 安装

1.1.1 下载MariaDB wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.3.16/bintar-linux-x86_64/mariadb-10.3.16-linux-x86_64.tar.gz

       https://mariadb.com/downloads/

1.1.2 解压安装

[root@localhost:/usr/local]#tar -zxvf mariadb-10.3.16-linux-x86_64.tar.gz -C /usr/local/
[root@localhost:/usr/local]#ln -s mariadb-10.3.16-linux-x86_64 mariadb
[root@localhost:/usr/local]#cd mariadb
[root@localhost:/usr/local/mariadb]#cp /etc/my.cnf /etc/my_3320.cnf ####生成my.cnf文件 与原生mysql差不多,有个别参数不存在。
[root@localhost:/usr/local/mariadb]#./scripts/mysql_install_db  --defaults-file=/etc/my_3320.cnf --basedir=/usr/local/mariadb/
[root@localhost:/usr/local/mariadb]#chown -R mysql:mysql /data/mysql_3320/
[root@localhost:/usr/local/mariadb]#/usr/local/mariadb-10.3.16-linux-x86_64/bin/mysqld_safe --defaults-file=/etc/my_3320.cnf &

 

1.2.安装spider 引擎

[root@localhost:/usr/local/mariadb]#mysql -uroot -p < /usr/local/mariadb/share/install_spider.sql
root@localhost 19:46: [(none)]> select * from information_schema.engines where engine='SPIDER';


2.spider的使用实战

2.1 创建spider引擎表方法1 

#mysql node1
CREATE TABLE s(
id INT NOT NULL AUTO_INCREMENT,
code VARCHAR(10),
PRIMARY KEY(id));
 
#spider node
CREATE TABLE s(
id INT NOT NULL AUTO_INCREMENT,
code VARCHAR(10),
PRIMARY KEY(id)
)
ENGINE=SPIDER COMMENT 'host "10.204.10.20", user "work", password "123456", port "3306", database "lucky_order"';

2.2 创建spider引擎表方法2

#创建spider到后端DB server的配置
CREATE SERVER lucky_test1 FOREIGN DATA WRAPPER mysql OPTIONS (
  HOST '10.212.22.22',
  DATABASE 'lucky_test1',
  USER 'admintools',
  PASSWORD '111111',
  PORT 3306
);
CREATE SERVER lucky_test2 FOREIGN DATA WRAPPER mysql OPTIONS (
  HOST '10.204.28.1',
  DATABASE 'lucky_test2',
  USER 'admintools',
  PASSWORD '111111',
  PORT 3336
);
或者直接插入mysql.servers表
INSERT INTO mysql.servers(Server_name,HOST,Db,Username,PASSWORD,PORT,SOCKET,WRAPPER,OWNER)
VALUES ('lucky_test1','10.212.22.22','lucky_test1','work','111111',3306,'','mysql','');
 
INSERT INTO mysql.servers(Server_name,HOST,Db,Username,PASSWORD,PORT,SOCKET,WRAPPER,OWNER)
VALUES ('lucky_test2','10.204.55.72','lucky_test2','work','111111',3306,'','mysql','');
 
#mysql node1
CREATE TABLE lucky_test1.sbtest1 (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  int(10) unsigned NOT NULL DEFAULT '0',
  char(120) NOT NULL DEFAULT '',
  pad char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (id),
  KEY k (k)
) ENGINE=InnoDB;
 
 
#mysql node2
CREATE TABLE lucky_test2.sbtest2 (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  int(10) unsigned NOT NULL DEFAULT '0',
  char(120) NOT NULL DEFAULT '',
  pad char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (id),
  KEY k (k)
) ENGINE=InnoDB;
 
 
#spider node
CREATE  TABLE test.sbtest1
(
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  int(10) unsigned NOT NULL DEFAULT '0',
  char(120) NOT NULL DEFAULT '',
  pad char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (id),
  KEY k (k)
) ENGINE=spider COMMENT='wrapper "mysql",srv "lucky_test1"';
CREATE  TABLE test.sbtest2
(
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  int(10) unsigned NOT NULL DEFAULT '0',
  char(120) NOT NULL DEFAULT '',
  pad char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (id),
  KEY k (k)
) ENGINE=spider COMMENT='wrapper "mysql",srv "lucky_test2"';
 
SELECT FROM sbtest1 a JOIN sbtest2 b ON a.id=b.id LIMIT 10;
 
 
DROP SERVER lucky_test0;
DROP TABLE test.sbtest1; drop spider上的表,不会drop后端DB server上的表。

2.3 创建hash分区表

CREATE TABLE sbtest (
  id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  INT(10) UNSIGNED NOT NULL DEFAULT '0',
  CHAR(120) NOT NULL DEFAULT '',
  pad CHAR(60) NOT NULL DEFAULT '',
  PRIMARY KEY (id),
  KEY k (k)
) ENGINE=SPIDER DEFAULT CHARSET=utf8 COMMENT='wrapper "mysql", table "sbtest1"'
PARTITION BY HASH (id)
( PARTITION pt1 COMMENT='wrapper "mysql",srv "lucky_test1"',
PARTITION pt2 COMMENT='wrapper "mysql",srv "lucky_test0"') ;

2.4 创建range分区表

CREATE TABLE sbtest_range (
  id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  INT(10) UNSIGNED NOT NULL DEFAULT '0',
  CHAR(120) NOT NULL DEFAULT '',
  pad CHAR(60) NOT NULL DEFAULT '',
  PRIMARY KEY (id),
  KEY k (k)
) ENGINE=SPIDER DEFAULT CHARSET=utf8 COMMENT='wrapper "mysql", table "sbtest1"'
PARTITION BY range columns (id)
( PARTITION pt1 values less than (100000)  COMMENT='wrapper "mysql",srv "lucky_test1"',
PARTITION pt2 values less than (200000) COMMENT='wrapper "mysql",srv "lucky_test0"') ;

2.5 创建list分区表

CREATE TABLE sbtest_list (
  id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  INT(10) UNSIGNED NOT NULL DEFAULT '0',
  CHAR(120) NOT NULL DEFAULT '',
  pad CHAR(60) NOT NULL DEFAULT '',
  PRIMARY KEY (id),
  KEY k (k)
) ENGINE=SPIDER DEFAULT CHARSET=utf8 COMMENT='wrapper "mysql", table "sbtest1"'
PARTITION BY list columns (id)
( PARTITION pt1 values in (1,3,5,7,9)  COMMENT='wrapper "mysql",srv "lucky_test1"',
PARTITION pt2 values in (2,4,6,8,10) COMMENT='wrapper "mysql",srv "lucky_test0"') ;
 
posted @ 2019-06-22 19:05  雨中海  阅读(440)  评论(0编辑  收藏  举报