前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >有手就可以玩,MariaDB轻松实现分库分表,让你的代码一行不改,就这么简单

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

原创
作者头像
贺春旸的技术博客
修改2024-07-17 14:40:23
1070
修改2024-07-17 14:40:23
举报
文章被收录于专栏:DBA 平台和工具

如果你不想学习除MySQL家族之外的其他数据库技术,并且也想轻松拥有分片技术,那么你可以考虑使用MariaDB的Spider存储引擎。

今天我来给你演示一下如何使用MariaDB Spider进行数据分片。它类似于一个中间件,可以类比为MyCAT,能够让你的应用程序在不修改一行代码的情况下,轻松实现分库分表。

具体实施步骤如下,非常简单,跟着做就行了。

第一步:配置数据节点

将以下命令复制粘贴到你的MariaDB数据库中,配置两个数据节点:

代码语言:sql
复制
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数据库中:

代码语言:sql
复制
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条数据进行测试:

代码语言:sql
复制
sql复制代码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数据库查看数据,此时你会发现数据已经成功分散到两个节点中。

怎么样?就是这么简单,只需简单几步就能实现,完全不需要额外的学习。赶紧行动吧!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步:配置数据节点
  • 第二步:创建分表规则
  • 第三步:插入测试数据
  • 第四步:验证分片结果
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档