如果你不想学习除了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,我们要实现把数据分散到这两个节点里。

有手就可以玩,MariaDB轻松实现分库分表,让你的代码一行不改,就这么简单_数据库


第二步,创建分表规则,我们这里以哈希主键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轻松实现分库分表,让你的代码一行不改,就这么简单_mysql_02


第三步,你直接在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');

第四步,你回到后端MySQL数据库里查看,此时数据已经实现分散。