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

wordpress 页面 浏览量上海排名seo公司

wordpress 页面 浏览量,上海排名seo公司,php网站开发教材,网站设计与建设系统分表和分库是什么?有什么区别? 分库是一种水平扩展数据库的技术,将数据根据一定规则划分到多个独立的数据库中。每个数据库只负责存储部分数据,实现了数据的拆分和分布式存储。分库主要是为了解决并发连接过多,单机 my…

分表和分库是什么?有什么区别?

  分库是一种水平扩展数据库的技术,将数据根据一定规则划分到多个独立的数据库中。每个数据库只负责存储部分数据,实现了数据的拆分和分布式存储。分库主要是为了解决并发连接过多,单机 mysql扛不住的问题。

  分表指的是将单个数据库中的表拆分成多个表,每个表只负责存储一部分数据。这种数据的垂直划分能够提高查询效率,减轻单个表的压力。分表主要是为了解决单表数据量太大,导致查询性能下降的问题。

分库与分表可以从:垂直(纵向)和 水平(横向)两种纬度进行拆分。下边我们以经典的订单业务举例,看看如何拆分。

  垂直分库:一般来说按照业务和功能的维度进行拆分,将不同业务数据分别放到不同的数据库中,核心理念 专库专用。按业务类型 对数据分离,剥离为多个数据库,像订单、支付、会员、积分相关等表放在对应的订单库、支付库、会员库、积分库。垂直分库把  一个库的压力分摊到多个库,提升了一些数据库性能,但并没有解决由于单表数据量过大导致的性能问题,所以就需要配合后边的  分表来解决。

  垂直分表:针对业务上字段比较多的大表进行的,一般是把业务宽表中比较独立的字段,或者不常用的字段拆分到单独的数据表中,是一种大表拆小表的模式。数据库它是以行为单位将数据加载到内存中,这样拆分以后核心表大多是访问频率较高的字段,而 且字段长度也都较短,因而可以加载更多数据到内存中,减少磁盘IO,增加索引查询的命中率,进一步提升数据库性能。

 

 水平分库:是把同一个表按一定规则拆分到不同的数据库中,每个库可以位于不同的服务器上,以此实现水平扩展,是一种常见的 提升数据库性能的方式。这种方案往往能解决单库存储量及性能瓶颈问题,但由于同一个表被分配在不同的数据库中,数据的访问 需要额外的路由工作,因此系统的复杂度也被提升了。

  水平分表:是在同一个数据库内,把一张大数据量的表按一定规则,切分成多个结构完全相同表,而每个表只存原表的一部分数据。水平分表尽管拆分了表,但子表都还是在同一个数据库实例中,只是解决了单一表数据量过大的问题,并没有将拆分后的表分。

 常见的分库分表工具:

1. Sharding-JDBC

基于方式
Sharding-JDBC是一个轻量级的Java框架,它通过JDBC驱动的方式,透明化地支持分库分表。它主要是基于AOP原理,在webapp本地进行SQL的拦截、解析、改写、路由和结果归集处理。

优点

  • 效率高,因为它在本地应用层重写jdbc原生的方法,实现数据库分片形式。

  • 可以在不改变现有代码的情况下进行数据库水平扩展。

缺点

  • 需要修改代码,对应用入侵性比较强。

2. Sharding-Proxy

基于方式
Sharding-Proxy作为数据库代理服务,提供MySQL、PostgreSQL和SQLServer等多种协议的支持。它对外表现为一个完整的数据库服务器,能够接受标准的SQL语句并路由到后端的真实数据库。

优点

  • 支持多种数据库协议,可以作为一个独立的数据库服务存在。

  • 降低了客户端的改造成本。

缺点

  • 相比Sharding-JDBC,可能存在一些性能损耗,因为它需要在代理层进行SQL的解析和路由。

3. MyCat

基于方式
MyCat是一款开源的分布式数据库中间件,它主要通过改写SQL分发,以保证数据的安全。MyCat基于Proxy,将MyCat server伪装成一个MySQL数据库,通过它来管理后端的真实数据库。

优点

  • 跨语言、跨平台、跨数据库的能力强,支持多种数据库的分库分表和读写分离。

  • 可以通过代码直连数据库,灵活性高。

缺点

  • 生态还并不是很完善,很多内容都在开发中。

  • 相比ShardingSphere,其社区支持和功能完善度可能稍逊一筹。

4. Apache ShardingSphere

基于方式
Apache ShardingSphere是一个生态圈,主要由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar这三款相互独立但又能够混合部署配合使用的产品组成。它提供了全面的分库分表、读写分离、分布式事务等解决方案。

优点

  • 功能全面,支持多种数据库和分片策略。

  • 社区活跃,有问题可以方便地询问和得到支持。

  • 提供了灵活的部署方式,可以根据项目需求选择合适的组件进行混合使用。

缺点

  • 相比轻量级的Sharding-JDBC,ShardingSphere的复杂度和学习成本可能稍高。

  • 作为组件存在,需要集成在应用内,意味着作为使用方,必须要集成到代码里,使得开发成本相对较高。

总结

在选择分库分表工具时,需要根据项目的具体需求、技术栈以及团队的技术能力进行综合考虑。每种工具都有其独特的优点和适用场景,选择合适的工具可以大大提升项目的开发效率和系统性能。

http://www.shuangfujiaoyu.com/news/55037.html

相关文章:

  • 目前哪个网站建设的最好百度一下搜索引擎大全
  • 淘客怎么用网站做免费b2b网站推广渠道
  • 做网站一般图片的比例怎么在百度发广告
  • 衡水做网站技术东莞推广公司
  • 做网站需要什么技术网站推广论坛
  • 深圳做网站(信科网络)如何自创网站
  • 做网站wzjseo产品推广方案ppt模板
  • 做网站赚取广告费新网站如何快速收录
  • 廊坊企业建站网络营销软件下载
  • 爱名网做网站教程百度官方网站登录
  • html旅游网站制作代码google浏览器入口
  • 张家港那家做网站常用的网络推广手段有哪些
  • wordpress css修改搜索引擎优化的缺点包括
  • 长景园林这个网站谁做的soe搜索优化
  • 一些有趣的网站中山网站seo优化
  • 动态网站开发的用途卢松松外链工具
  • 做网站 插件整站营销系统
  • 关键词网站查询全球网站排行榜
  • 昆明网站制作游戏推广公司怎么接游戏的
  • 韩国手做配件网站公司以优化为理由裁员合法吗
  • 手机网页尺寸南京百度快速排名优化
  • 凡客诚品购物网抖音seo培训
  • 如何做动态网站html青岛网页搜索排名提升
  • 江苏优质网站制作公司搜索引擎营销的流程
  • 做网站需要哪个系统国内建站平台有哪些
  • 百度推广的渠道有哪些关键词优化排名怎么做
  • 网站怎么加关键词5118关键词查询工具
  • 用凡科做的网站要钱吗营业推广怎么写
  • 如何搜索公司所有的网站网络运营是做什么的
  • 哪里有南宁网站建设个人开发app去哪里接广告