移动互联网时代,海量的用户数据每天都在产生,基于用户使用数据的用户行为分析等这样的分析,都需要依靠数据都统计和分析,当数据量小时,问题没有暴露出来,数据库方面的优化显得不太重要,一旦数据量越来越大时,系统响应会变慢, TPS直线下降,直至服务不可用,可能有人会提出来,为何不用Oracle呢,确实,很多开发者写代码时并不会关心SQL的问题,凡是性能问题都交给DBA负责SQL优化,可是,不是每一个项目都会有DBA, 也不是所有的项目都会采用 Oracle 数据库,而且, Oracle 数据库在大数据…
分库分表(5)--- ShardingSphere实现分库分表 有关分库分表前面写了四篇博客: 1.分库分表(1) --- 理论 2.分库分表(2) --- ShardingSphere(理论) 3.分库分表(3) ---SpringBoot + ShardingSphere实现读写分离 4.分库分表(4) ---SpringBoot + ShardingSphere 实现分表 这篇博客通过ShardingSphere实现分库分表,并在文章最下方附上项目Github地址. 一.项目概述 1.技术…
分库分表(7)--- ShardingSphere实现分库分表+读写分离 有关分库分表前面写了六篇博客: 1.分库分表(1) --- 理论 2.分库分表(2) --- ShardingSphere(理论) 3.分库分表(3) ---SpringBoot + ShardingSphere实现读写分离 4.分库分表(4) ---SpringBoot + ShardingSphere 实现分表 5.分库分表(5) ---SpringBoot + ShardingSphere 实现分库分表 6.分库分表…
一. 两种存储引擎:MyISAM与InnoDB 区别与作用 1. count运算上的区别: 因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好的查询是不需要消耗多少资源的.而对于InnoDB来说,则没有这种缓存. 2. 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但不提供事务支持.InnoDB 提供事务支持事务,外部键等高级数据库功能. 具有事务(commit).回滚(rollb…
1.mycat文档:https://github.com/MyCATApache/Mycat-doc       官方网站:http://www.mycat.org.cn/ 2.mycat的优点: 配置简单,灵活 可实现读写分离 可利用多种规则实现分库分表 心跳机制,自动踢出故障机组 免费开源,长期维护,社区活跃 mycat的缺点: 主要是分片之后有一些限制,如只能2表join 3.架构图:可实现读写分离,分库分表 4.所需软件,机器配置与ip地址 名称 版本 下载地址 mysql server…
1.MySQL主备切换 readonly 设置对超级(super)权限是无效的,而用于同步更新的线程,就拥有超级权限. 建议在做主备数据库的时候,将备用数据库设置为只读.(反向用readonly来判断节点的角色) 主备的同步是通过 binlog 日志同步,流程: 1).备库上通过 change master 命令,设置主库的 IP.端口.用户名.密码,以及从哪个位置开始请求 binlog,这个位置包含了文件名称和日志偏移量: 2).备库执行 start slave 命令,备库会启动两个线程.其中…
分布式读写分离和分库分表采用sharding-jdbc实现. sharding-jdbc是当当网推出的一款读写分离实现插件,其他的还有mycat,或者纯粹的Aop代码控制实现. 接下面用spring boot 2.1.4 release 版本实现读写分离. 1. 引入jar包 <!-- lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok<…
目录 创建项目 分表 导包 表结构 Yml 分库 Yml Java 分库分表 数据库 Yml 读写分离 数据库 Yml 其他 只请求主库 读写分离判断逻辑代码 一主多从+分表 Yml 一主多从+分库分表 Yml 公共表&数据脱敏 公共表 数据库 Java代码 Yml 数据脱敏 分布式事务 Yml pom Java 异常 代码下载 创建项目 一顿下一步,勾选web.lombok等插件 分表 导包 ShardingJdbc 官方最新稳定版4.1.1 <!-- https://mvnreposit…
前言 项目涉及到了一些设计模式,如果你看的不是很明白,没有关系坚持下来,写完之后去思考去品,你就会有一种突拨开云雾的感觉,所以请不要在半途感觉自己看不懂选择放弃,如果我哪里写的详细,或者需要修正请联系我,谢谢. 创建项目 1.SDK安装 我们开发用的vs版本是2019 .Net Core的版本是3.1 下载 SDK 地址 :https://dotnet.microsoft.com/download 2.新建项目 这里选择Core 版本是3.1 项目类型是API Docker支持我们不勾选,我会在…
分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,具体请参考mysql分区功能详细介绍,以及实例 二,mysql分表和分区有什么区别呢 1,实现方式上 a),mysql的分表是真正的分表,一张表分成很多表后,每一个小表都是完正的一张表,都对应三个文件,一个.MYD数据文件,.MYI索引文件,.frm表…