您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
数据库分库分表,何时分?怎样分?
数据库,数据,系统数据库分库分表,何时分?怎样分?
发布时间:2020-12-06加入收藏来源:互联网点击:
数据库分库分表,何时分?怎样分?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
首先非常感谢在这里能为你解答这个问题,让我带领你们一起走进这个问题,现在让我们一起探讨一下。
随着互联网技术的成熟,我们的个人信息都存储在数据库之中,那么对于程序员的我们,对于数据库的优化又是怎样做到的呢?
一、数据切分
根据切分类型,可以分为两种方式:垂直(纵向)切分和水平(横向)切分
接下来给大家慢慢介绍:
1、垂直(纵向)切分
常见有垂直分库和垂直分表两种。
垂直分库就是根据业务耦合性,将关联度低的不同表存储在不同的数据库。
垂直分表是基于数据库中的“列”进行,某个表字段较多,可以新建一张扩展表,将不经常用或字段长度较大的字段拆分出去到扩展表去。
垂直切分的优点:
①解决业务系统层面的耦合,业务清晰
②与微服务的治理类似,也能对不同业务的数据进行分级管理、维护、监控、扩展等。
③高并发场景下,垂直切分一定程度的提升IO、数据库连接数、单机硬件资源的瓶颈。
当然了,任何事物的出现都有两面性,不足之处就是:
①部分表无法json,只能通过接口聚合方式解决,提升了开发的复杂度。
②分布式事务处理复杂
③依然存在单表数据量过大的问题
2、水平(横向)切分
根据表内数据内在的逻辑关系,将同一个表按不同的条件分散到多个数据库或多个表中,每个表中只包含一部分数据,从而使得单个表的数据量变小,达到分布的效果。
水平切分的优点:
①不存在单库数据量过大、高并发的性能瓶颈,提升系统稳定性和负载能力
②应用端改造较小,不需要拆分业务模块
缺点:
①跨分片的事务一致性难以保证
②跨库的join关联查询性能较差
③数据多次扩展难度和维护量极大
综上,是我个人对于数据库性能的一些见解,欢迎大家在评论区留下自己的见解。
在以上的分享关于这个问题的解答都是个人的意见与建议,我希望我分享的这个问题的解答能够帮助到大家。
在这里同时也希望大家能够喜欢我的分享,大家如果有更好的关于这个问题的解答,还望分享评论出来共同讨论这话题。
我最后在这里,祝大家每天开开心心工作快快乐乐生活,健康生活每一天,家和万事兴,年年发大财,生意兴隆,谢谢!
回答于 2019-09-11 08:43:50
数据库分表没有固定的模式,可以根据生产过程参照以下几种来划分
1:基础信息库;
对系统的基础信息,系统架构起主要作用的信息单独一个库,保证数据库不被轻易修改和删除,也是整个系统运行的核心,安全配置级别也相对更高
2:生产系统数据库
生产系统,即数据产生的过程系统,这个系统的数据主要有业务逻辑层面来操作,生产出的数据主要用于增加、修改、删除操作
3:业务痕迹数据库
我们必须保证每项数据的生产过程全程处于可查询状态,数据如何产生,如何变化,为何被删除,保证系统的可追溯性
4:查询数据库
这个相对复杂,因为庞大的数据,必然会产生数据的交织和组合,根据用户端查询的特别生成相应的子数据库,一是可以智能化用户查询结果,二是可保证数据查询的高效性。
二:当数据庞大到单张表无法解决的时候,可参照如下进行划分
1:根据系统核心数据建数据库
比如可根据用户来建数据库,每个用户一个数据库
2:根据业务逻辑建数据库
当每一项业务逻辑产生的数据库必然庞大到单张表无法解决的情况,这个时候,可以通过分表,建立字表数据,只是在查询的时候稍微麻烦一下
总之,没有一个非常固定的方式,具体情况,具体分析,用户系统的稳定性是重中之重,单独从技术面分析,犹如闭门造车。
回答于 2019-09-11 08:43:50
正确的分表回答[赞]
数据库分表没有固定的模式,可以根据生产过程参照以下几种来划分
1:基础信息库;
对系统的基础信息,系统架构起主要作用的信息单独一个库,保证数据库不被轻易修改和删除,也是整个系统运行的核心,安全配置级别也相对更高
2:生产系统数据库
生产系统,即数据产生的过程系统,这个系统的数据主要有业务逻辑层面来操作,生产出的数据主要用于增加、修改、删除操作
3:业务痕迹数据库
我们必须保证每项数据的生产过程全程处于可查询状态,数据如何产生,如何变化,为何被删除,保证系统的可追溯性
4:查询数据库
这个相对复杂,因为庞大的数据,必然会产生数据的交织和组合,根据用户端查询的特别生成相应的子数据库,一是可以智能化用户查询结果,二是可保证数据查询的高效性。
二:当数据庞大到单张表无法解决的时候,可参照如下进行划分
1:根据系统核心数据建数据库
比如可根据用户来建数据库,每个用户一个数据库
2:根据业务逻辑建数据库
当每一项业务逻辑产生的数据库必然庞大到单张表无法解决的情况,这个时候,可以通过分表,建立字表数据,只是在查询的时候稍微麻烦一下
总之,没有一个非常固定的方式,具体情况,具体分析,用户系统的稳定性是重中之重,单独从技术面分析,犹如闭门造车。
上一篇:Doinb这种中单坦克打法,是否会引起LOL未来的玩法趋势产生变化?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |