当前位置: 首页 > news >正文

安宁网站建设熊掌电商网站订烟平台官网

安宁网站建设熊掌,电商网站订烟平台官网,公司部门主页设计方案,seo服务方案详解分库分表设计 背景 ​ 在传统的单机数据库架构中#xff0c;所有数据都存储在同一个数据库中#xff0c;随着业务规模的不断扩大#xff0c;数据量和并发量也会越来越大#xff0c;这会给数据库的性能和可用性带来挑战。此外#xff0c;当单机数据库的容量达到瓶颈时…详解分库分表设计 背景 ​ 在传统的单机数据库架构中所有数据都存储在同一个数据库中随着业务规模的不断扩大数据量和并发量也会越来越大这会给数据库的性能和可用性带来挑战。此外当单机数据库的容量达到瓶颈时无法继续扩展这也限制了应用程序的可扩展性。 ​ 为了解决这些问题分库分表技术应运而生。通过将数据分散存储在多个数据库或表中可以减轻单一数据库的负载提高系统的并发性能。此外分库分表还可以支持水平扩展使得系统能够随着业务的增长而不断扩展。 总之分库分表是一种常用的数据库架构设计方案可以解决数据库在数据量、并发性、可扩展性等方面面临的瓶颈问题是大规模应用程序必不可少的技术之一。 为什么分库分表 数据量增大当数据量逐渐增大时单个数据库或表可能无法承载所有数据导致性能下降甚至崩溃。 分库分表可以将数据分散到多个数据库或表中每个数据库或表都只负责一部分数据从而提高系统的性能和可靠性。 提高并发能力当多个用户同时访问同一个表时容易造成数据库的性能瓶颈导致响应变慢。 分库分表可以将数据分散到多个数据库或表中从而提高并发访问能力减少系统的瓶颈。 数据隔离在多租户场景下不同的租户需要使用不同的数据库或表以保证彼此的数据隔离。分库分表可以将不同租户的数据分散到不同的数据库或表中从而保证数据的隔离性。 降低单节点的压力当系统需要支持大量数据的读写操作时单个数据库或表可能无法承载此时可以将数据分散到多个数据库或表中从而降低单个节点的压力。 什么是分库分表 分库将一个数据库拆分为多个数据库 水平分库指将一个大型数据库分成多个较小的、相似的数据库每个数据库包含数据的不同部分 例如将用户数据根据其 ID 值的范围分配到用户库DB1、用户库DB2中。 这种分片方式可以提高系统的扩展性和性能因为可以将负载分散到多个数据库中 特点 每个库的结构都一样存储同一业务类型的数据 每个库的数据都不一样没有交集 所有库的并集是全量数据 垂直分库是指将一个大型数据库根据业务关系分成多个较小的数据库。 例如将用户数据存储在用户库订单数据存储在订单库中。 这种分片方式可以提高系统的灵活性和可维护性因为可以根据需要对不同的数据库进行单独的优化和维护 特点 每个库的结构都不一样存储不同业务类型的数据 每个库的数据都不一样没有交集 所有库的并集是全量数据 水平分库和垂直分库并不是互斥的概念两者可以结合使用来实现更高效的数据库分片方案 分表将一个数据表拆分为多个数据表 水平分表是指将一个表中的数据按照某个规则分散到多个表中这个规则通常是基于某个列的取值进行的 例如可以根据用户ID通过范围、Hash、取余等规则将用户表分成多个子表每个子表中存储特定范围内的用户数据 水平分表可以提高数据查询效率因为查询只需要在一个小的子表中执行而不是在整个表中执行 特点1. 每个表的结构都一样存储**同一实体、相同类型**的数据2. 每个表存的数据都不一样没有交集3. 所有表的并集是全量数据垂直分表指将一个表按照列的方式进行分割将一部分列存储到一个表中另一部分列存储到另一个表中。这个分割通常是基于列的相关性进行的典型的如主表和扩展表 例如可以将一个包含用户主要信息、用户辅助信息的表分成两个表一个包含用户主要信息另一个包含用户辅助信息。 这可以提高数据的存储效率因为每个表只包含必要的列而不是整个表的所有列。 特点1. 每个表的结构都不一样存储**同一实体、不同类型**的数据2. 每个表存的数据都不一样字段至少有一列交集一般是主键用于关联数据3. 所有表的并集是全量数据拆分策略 按范围切分按照数据的某个范围将表拆分成多个子表。例如可以按照时间范围将订单表拆分成每个月的子表。 优点 ​ 水平扩展按照范围进行分库分表可以实现水平扩展当数据量增加时可以方便地增加更多的数据库或表比如以2000万标准拆分超过2000万的转移到新表而之前2000万内的记录就无需再做迁移了 缺点 ​ 热点问题如果某些数据访问频率很高但是按范围切分后又被分在同一个区段这样大量请求会集中在这一区段没有很好的负载均衡效果 按照哈希值切分按照数据的哈希值将表拆分成多个子表。例如可以使用用户ID的哈希值将用户表拆分成多个子表。 HASH取模策略指定的路由key一般是主键ID对分表总数进行取模把数据分散到各个表中 优点 ​ 负载均衡没有明显的热点倾斜问题 缺点 ​ 扩展不灵活如果一开始按照HASH取模分成4个表了未来某个时候表数据量又到瓶颈了需要扩容至这就比较棘手了需要重新进行数据迁移 按照地理位置切分如果数据与地理位置相关则可以按照地理位置将表拆分成多个子表。例如可以按照城市将商家表拆分成多个子表。 按照业务类型切分如果数据有不同的业务类型则可以按照业务类型将表拆分成多个子表。例如可以按照产品类型将商品表拆分成多个子表。 按照访问频率切分如果某些数据被频繁访问则可以将其放入单独的表中以便更快地访问。例如可以将最近一年的订单数据放入单独的表中以便更快地查询最近的订单。 分库分表工具 ShardingSphereShardingSphere是一套开源的分布式数据库中间件解决方案支持分库分表、读写分离、数据加密等功能。 官网https://shardingsphere.apache.org/index_zh.html MycatMycat是一款基于MySQL协议的开源分布式数据库中间件支持分库分表、读写分离、数据分片等功能。 官网http://www.mycat.org.cn/ TDDLTDDL是阿里巴巴开源的一款分布式数据库中间件支持MySQL、Oracle等数据库提供了分库分表、读写分离、数据分片等功能。 CobarCobar是阿里巴巴开源的一款分布式数据库中间件支持MySQL、PostgreSQL等数据库提供了分库分表、读写分离、数据分片等功能。 分库分表问题 主键(自增 ID)唯一性问题在表设计时经常会使用自增 ID 作为主键这就导致后续在迁库迁表、或者分库分表操作时会因为主键的变化或者主键不唯一产生问题解决方案主要有 采用分布式全局统一 ID 生成机制如 UUID、雪花算法、数据库号段等方式 分布式事务由于数据被分散在多个数据库或表中事务的处理会变得更加复杂。例如如果一个事务涉及多个数据库或表那么如何保证这些操作的原子性就需要更加细致的设计。 Join/分页查询在分库分表的情况下查询跨越多个数据库或表就变得更加复杂。例如如果需要对一组数据进行全文搜索那么就需要在多个数据库或表中执行查询这可能会影响查询性能。 分开查询再组装数据 冗余字段如果每次join操作只是为了获取少量的字段那么可以考虑直接将这些字段冗余到表上 数据同步 ​ 将数据源之间的数据同步到一个单独的数据仓库中然后在这个数据仓库中进行join操作。这种方法可以解决跨库跨表的join问题但是需要额外的存储和同步成本并且可能存在数据同步延迟和一致性问题 数据迁移在分库分表的情况下如果需要将数据迁移到新的数据库或表中就需要考虑如何迁移数据并且在迁移的过程中如何保证数据的一致性。 系统复杂度由于分库分表需要管理多个数据库或表系统的复杂度也会随之增加。例如需要考虑如何监控每个数据库或表的状态如何处理数据库或表的故障等等问题。 数据迁移在分库分表的情况下如果需要将数据迁移到新的数据库或表中就需要考虑如何迁移数据并且在迁移的过程中如何保证数据的一致性。 系统复杂度由于分库分表需要管理多个数据库或表系统的复杂度也会随之增加。例如需要考虑如何监控每个数据库或表的状态如何处理数据库或表的故障等等问题。
http://www.hkea.cn/news/14289330/

相关文章:

  • 定制网站建设多少钱深圳网站建设网页设计
  • 我想做个网站要多少钱有哪些网页设计软件
  • 关于网站建设的方案ppt教育培训机构网站
  • 网站建设 phpppt模板下载网址
  • vs做网站怎么上东莞模块网站建设
  • 深圳网站建设收费标准优质网站策划
  • 支付宝 手机网站支付接口2.0关于推进公司网站开发的请示
  • 大型网站seo方法网站引导页是什么
  • 全国建设注册中心网站一个网站域名多少钱
  • 加盟网站制作费用做儿童方面的网站
  • 宜宾建设教育培训中心网站建网站的公司不肯签合同
  • 广州婚恋网站排名网站项目建设周期
  • 网站有源码之后怎么建设网站网页图片代码
  • 网站开发小工具怎么制作网站ping工具
  • 中学加强校园网站建设郑州网站建设企业推荐
  • 深圳有哪些招聘网站网站不公开简历做家教
  • 公司网站属于信息化建设吗博采网络
  • 做海外贸易网站北京到安阳的火车
  • 深圳建设企业网站多媒体展厅设计制作公司
  • 食品 技术支持 东莞网站建设专门建设网站的公司
  • 新网站多久被百度收录定制v软件免费下载
  • 网站建设和维护一年的费用设计一套网站费用
  • 安徽建设住房建设厅网站河南商务网站建设
  • 云龙微网站开发深圳企业网站建设费用
  • 哪些网站用c 做的多域名指向同一网站
  • 鲜花网站开发背景网站建设运维
  • 济南建设工程业绩公示的网站网络营销的四种策略
  • 免费网站注册域名阳江网上办事大厅
  • 网站建设质量体系审核指导做网站用哪几个端口 比较好
  • 黄页网站 php个人自助网站