如果你不想学习除了MySQL家族之外的数据库技术,并且也想轻松拥有分片技术,那你不妨看看MariaDB Spider存储引擎。
今天我给你演示一下MariaDB Spider分片技术,它类似一个中间件,你可以把它比作为MyCAT,它可以让你的应用程序一行代码不改,即可轻松实现分库分表。
具体的实施步骤,我给你说一下,真的非常简单,有手就可以玩。
第一步,配置数据节点,我把命令贴在这里了,你直接复制粘贴即可。
CREATE SERVER dataNode1 FOREIGN DATA WRAPPER mysql
OPTIONS (
HOST '127.0.0.1',
DATABASE 'test',
USER 'admin',
PASSWORD '123456',
PORT 6666);
CREATE SERVER dataNode2 FOREIGN DATA WRAPPER mysql
OPTIONS (
HOST '127.0.0.1',
DATABASE 'test',
USER 'admin',
PASSWORD '123456',
PORT 6667);
这里我们创建了两个数据库节点,版本都是MySQL 8.0,端口6666和6667,我们要实现把数据分散到这两个节点里。
第二步,创建分表规则,我们这里以哈希主键id为测试用例,将通过内部的取模规则,将数据分散到后端MySQL 8.0里。
CREATE TABLE test.t1 (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50)
) ENGINE=Spider COMMENT='wrapper "mysql", table "t1"'
PARTITION BY HASH (id)
(
PARTITION pt1 COMMENT = 'srv "dataNode1"',
PARTITION pt2 COMMENT = 'srv "dataNode2"'
) ;
第三步,你直接在MariaDB数据库里插入10条数据做测试
insert into t1 values(1,'a');
insert into t1 values(2,'b');
insert into t1 values(3,'c');
insert into t1 values(4,'d');
insert into t1 values(5,'e');
insert into t1 values(6,'f');
insert into t1 values(7,'g');
insert into t1 values(8,'h');
insert into t1 values(9,'i');
insert into t1 values(10,'j');