• 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"') ;
     
  • 相关阅读:
    构建git+gerrit+repo的Android代码服务器
    简单学习:repo入门
    git checkout 命令详解
    python学习第一天
    window下的git工具msysgit的使用
    git基本操作
    echarts 使用示例
    管道命令
    jquery修改文档结构
    JavaScript正则表达式
  • 原文地址:https://www.cnblogs.com/ijia/p/11070015.html
Copyright © 2020-2023  润新知