数据库简单认知

本文介绍了数据库的简单认知,包括读写分离的概念,通过配置多个数据源减轻主数据库压力。进一步讨论了垂直切分,将核心数据与非核心数据分离。最后探讨了水平切分在处理大量日志数据时的重要性,通过每日新建表或按规则分表来优化查询效率。
摘要由CSDN通过智能技术生成

数据库简单认知

假设购物网站数据库主要存储
1、商品信息表
2、会员信息等其他表


刚开始(我们将1 2全部放在一个DB中,记作 DB_MASTER_A
突然有一天发现DB坏了,备用的DB都没有,这时候DB_SLAVE_A就应景而生了
####读写分离
可以将读频繁的和慢的切换到DB_SLAVE_A中以减轻DB_MASTER_A的压力,
比如:商品各类信息
可以配置多个数据源 指向不同的数据库
sql调用那个数据源 1、可以通过不同路径配置不同的数据源
2、AOP实现访问制定的数据源


有一天发现会员的信息是核心模块不能什么都能访问,核心数据,
这个时候就有了垂直切分了 拆一个DB_MASTER_B
以及一个用于读的DB_SLAVE_B
####垂直切分
DB_MASTER_A核心数据 DB_SLAVE_A核心数据读库
DB_MASTER_B非核心数据 DB_SLAVE_B非核心数据读库
优点:业务清晰,扩展容易


有一天商品的浏览日志记录数据每天都会产生大量的数据
这个时候水平拆分就应景而生了

水平切分

DB_MASTER_C用于记录日志,
但如果把每天的数据都放在一张表里面,那么即使有DB_SLAVE_C读库那么查询也很慢,这时候就有了分表
例如按照每天建立一张表, 表名LOG_20180124,这样查询不同时间的日志就可以去对应的表里面查了。
分表还可以按照,对编码取hash然后取余数分表,
或者定义规则表,每次访问先看数据那个规则再访问不同的表


最后的DB

DB_MASTER_A核心数据 DB_SLAVE_A核心数据读库
DB_MASTER_B非核心数据 DB_SLAVE_B非核心数据读库
DB_MASTER_C日志数据 DB_SLAVE_C日志数据读库

DB_MASTER_C 表:LOG_20180123表:LOG_20180124表:LOG_20180125
DB_SLAVE_C表:LOG_20180123表:LOG_20180124表:LOG_20180125


欢迎指正交流欢迎指正交流欢迎指正交流欢迎指正交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值