ShardingSphere 数据库中间件
分库分表概述
数据库拆分策略
1. 垂直分割垂直分割是将一个表按照列的方式拆分成多个表,减少单个表的记录数和列数,提高查询性能。垂直分割一般分为两种: 基于功能分割和基于范式分割。例如,将一个用户表拆分为登录信息表、用户信息表和账户信息表。2. 水平分割水平分割是将一个表按照行的方式拆分成多个表,将数据存储到多个服务器上,提高查询性能。水平分割一般按照主键或按照特定的列进行分割。例如,将一个订单表按照订单号拆分成多个表。4. 读写分离读写分离是将对数据库的读操作和写操作拆分到不同的服务器上,减轻单个数据库的负载压力,提高查询性能。例如,将一个电商网站的读取操作分配到从数据库上,将写操作分配到主数据库上。5. 分片分片是将一个大型数据表按照某个维度拆分成多个小的数据表,并将数据存储到多个服务器上。分片一般按照分片键进行分割,例如,将一个电商网站的订单表按照某个地理位置分割成多个子表。
[mysqld]port = 3333character_set_server = utf8basedir = D : \mysql-5.7.25-winx64\3333\mysql-5.7.25-winx64datadir = D : \mysql-5.7.25-winx64\3333\mysql-5.7.25-winx64\dataserver-id = 101sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONlower_case_table_names = 1innodb_file_per_table = 1log_timestamps = SYSTEMngram_token_size = 1log-error = error.logslow_query_log = 1slow_query_log_file = slow.loglong_query_time = 5binlog_format = rowexpire_logs_days = 15log_bin_trust_function_creators = 1log-bin = D : \mysql-5.7.25-winx64\log\mysql-binbinlog-do-db = smbms[client]default-character-set = utf8
输入 cmd ,以管理员身份运行 dos输入命令创建第二个 mysql 服务mysqld install MySQL3333 --defaults-file="D:\mysql-5.7.25-winx64\3333\mysql-5.7.25-winx64\my.ini"删除服务命令:mysqld - remove 服务名查看服务是否安装,修改注册表中信息HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL2下 ImagePath 变量值: "E:\MySQL Server 5.5\bin\mysqld" --defaults-file="E:\MySQL Server5.5\my.ini"启动两个服务第二个服务默认 mysql 没有密码,可以连接试试
使用 dos 命令登录第二个服务修改密码mysql - uroot - p - P3307 (按下回车,让你输入密码,在按回车,密码可以不用输入)use mysql; 切换数据库update user set password=password('root') where user='root' and host='localhost' ;flush privileges ;quit ; 退出后再次使用密码登录show global variables like 'port' ; 查看当前数据库端口号
MYSQL实现读写分离
[mysqld]port = 3333character_set_server = utf8basedir = D : \mysql-5.7.25-winx64\3333\mysql-5.7.25-winx64datadir = D : \mysql-5.7.25-winx64\3333\mysql-5.7.25-winx64\dataserver-id = 101sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONlower_case_table_names = 1innodb_file_per_table = 1log_timestamps = SYSTEMngram_token_size = 1log-error = error.logslow_query_log = 1slow_query_log_file = slow.loglong_query_time = 5binlog_format = rowexpire_logs_days = 15log_bin_trust_function_creators = 1log-bin = D : \mysql-5.7.25-winx64\log\mysql-binbinlog-do-db = smbms[client]default-character-set = utf8
log-bin = D : \mysql-5.7.25-winx64\log\mysql-binreplicate-do-db = smbmslog-slave-updates
使用dos命令进入3334数据库,并进行信息绑定
mysql -uroot -p -P3334stop slave;# 127.0.0.1 为主数据库 IP 3333 为主数据库端口 用户,密码为主数据库 000002 要与主数据库 log 版本相同 563 也一样change master tomaster_host='127.0.0.1',master_port=3333,master_user='root',master_password='root',master_log_file='mysqld-bin.000002',master_log_pos= 563;start slave;show slave status\G; # 查看是否连接
如果失败,尝试修改uuid
ShardingSphere简介
ShardingSphere-JDBC
sharding-jdbc 的本质上就是实现 JDBC 的核心接口。
ShardingSphere-JDBC+mybatisplus
读写分离(水平拆分)
1.引入jar包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!--阿里数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
编写yml文件(注意缩进)
分库分表(水平拆分)
读写分离+分库分表(水平拆分
分库分表(垂直拆分)
原文地址:https://blog.csdn.net/m0_63233901/article/details/144373427
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!