————Mysql优化
量变决定质变
牢记理想,毋忘奋斗!
展开
-
MySQL分库分表
分库分表 当数据量非常大的时候,可以采用分库分表 切分方式包括纵向切割、横向切割 纵向切割 把不同业务的表,存放到不同的数据库中 实现方式 在业务逻辑实现,可以不使用中间件 缺点 大数据 商品表,有几亿条数据 解决不了查询速度慢的问题,还是很慢 表关联 用户表、订单表关联 不同的表,在不同的数据库,跨库很难做表关联 基本都是单表查询,查询一个库 根据id,...原创 2018-08-24 19:22:12 · 171 阅读 · 0 评论 -
MySQL读写分离事务策略实现
事务策略 之前的实现,是将通过方法名匹配 而不是使用事务策略中的定义 可以使用事务管理策略中的规则匹配 需要修改两个地方 定义切面 定义数据源的AOP切面 定义切面 <!-- 定义AOP切面处理器 --> <bean class="cn.itcast.usermanage.spring.DataSourceAspect" id="dataSourceAspec...原创 2018-08-24 19:50:16 · 3005 阅读 · 0 评论 -
MySQL读写分离应用层实现
基于Spring的AOP 在应用层,实现读写分离 在请求进入Service之前,使用AOP来做出判断 判断方式 是使用写库还是读库,判断依据可以根据方法名判断 比如,以query、find、get等开头的就走读库,其他的走写库 DynamicDataSource 定义动态数据源 import org.springframework.jdbc.datasource.lo...原创 2018-08-24 19:46:50 · 527 阅读 · 0 评论 -
MySQL读写分离中间件解决
中间件解决 通过中间件,处理读写分离 优点 1、源程序不需要做任何改动,就可以实现读写分离 2、动态添加数据源,不需要重启程序 缺点 1、程序依赖于中间件,会导致切换数据库变得困难 2、由中间件做了中转代理,性能有所下降...原创 2018-08-24 19:42:27 · 2560 阅读 · 0 评论 -
MySQL读写分离应用层解决
应用层解决 在应用层,通过业务逻辑代码,实现读写分离 优点 1、多数据源切换方便,由程序自动完成 2、不需要引入中间件 3、理论上支持任何数据库 缺点 1、由程序员完成,运维参与不到 2、不能做到动态增加数据源...原创 2018-08-24 19:41:10 · 461 阅读 · 0 评论 -
MySQL读写分离
读写分离 一般应用对数据库而言都是读多写少 也就说对数据库读取数据的压力比较大 有一个思路,就是说采用数据库集群的方案 其中一个是主库,负责写入数据,我们称之为:写库 其它都是从库,负责读取数据,我们称之为:读库 实现要求 1、读库和写库的数据一致 2、写数据必须写到写库 3、读数据必须到读库 实现方案 解决读写分离的方案有两种 应用层解决 中间件解决...原创 2018-08-24 19:37:29 · 151 阅读 · 0 评论 -
MySQL主从复制Linux实现
主从复制 注意事项 1、主DB server和从DB server数据库的版本一致 2、主DB server和从DB server数据库数据一致[ 可以把主的备份在从上还原 也可以直接将主的数据目录,拷贝到从的相应数据目录 3、主DB server开启二进制日志 主DB server和从DB server的server_id都必须唯一 主服务器配置 第一步 修改/e...原创 2018-08-24 19:36:12 · 1240 阅读 · 0 评论 -
MySQL主从复制Windows实现
主库配置 修改my.ini文件 #开启主从复制,主库的配置 log-bin = mysql3306-bin #指定主库serverid server-id=101 #指定同步的数据库,如果不指定则同步全部数据库 binlog-do-db=mybatis_1128 重启主库 在主库创建同步用户 授权用户slave01使用123456密码登录mysql grant replicat...原创 2018-08-24 19:29:25 · 275 阅读 · 0 评论 -
MySQL主从复制
主从复制 主库,master 从库,slave 主库,操作的时候,记录日志 从库,拿到执行日志,重新执行 实现原理 1、master将数据改变记录到二进制日志binary log中 也可以是配置文件log-bin指定的文件 这些记录叫做二进制日志事件,binary log events 2、slave将master的binary log events 拷贝到它的中继日...原创 2018-08-24 19:26:35 · 125 阅读 · 0 评论 -
MySQL读写分离一主多从实现
一主多从 实际项目中 一般都是采用一主多从的架构 修改数据源,动态切换数据源 DynamicDataSource 定义动态数据源 import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.conc...原创 2018-08-25 09:54:04 · 1244 阅读 · 0 评论