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

房地产最新消息今日/网站及搜索引擎优化建议

房地产最新消息今日,网站及搜索引擎优化建议,网站点赞怎么做的,做卖车网站需要什么手续费今天我们来学习MYSQL的分库分表面对访问数据库海量数据的情况,这张图带你解决数据库压力问题1、为什么要进行分库分表???分库分表是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数…

今天我们来学习MYSQL的分库分表

面对访问数据库海量数据的情况,这张图带你解决数据库压力问题

49aef337e49e1fa5c1bb8b3875947c7b.png

1、为什么要进行分库分表???

分库分表是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据性能的目的。a5f85fffbc64dfa1ceec9e0a81543c86.png

2、什么是分库分表???

06254cf34f62898eadefbb190fb59d6f.png

3、分表的优点???

47fba945ade2948db47e3b5833fd7f6f.png

4、如何分库???

8fd080b1fb56f116eb099cc3d587c687.png 垂直分库:

按照业务将表进行分类,分不到不同的数据库上面,每个库可以放在不同的服务器上,在分布式系统中实现专库专用。

案例:将商品信息表和商品描述表放在商品库,店铺表放在店铺库。

50c58cc530d57cd28a5dd9b2bdc44a35.png

c6ac3f2e667ecd85465371643d1feee8.png

水平分库:由于单库数据量太大,按照一定规则分成和库中表字段的类型一致的不同库中,每个库放在不同服务器上,减轻磁盘、cpu、内存的压力。

案例:将商品表分成两个字段类型一样的商品表,分到两个不同的服务器数据库中。

7170f0091d3acc495ed83346ac2a4180.png

182be9318a9dbce89350da5772c17837.png

垂直分库和水平分库的区别:

垂直分库:把不同表分到不同的数据库中(商品表和店铺表)

水平分库:把不同数据分到不同数据库中(商品表分成两个类型一样的表分到不同数据库中)

5、如何分表???

22d3deed89e936a64fb9d8f6a7df564c.png

垂直分表:

将一张海量数据的表按照使用频次垂直切分,例如:用户表中多个字段,用户信息、用户学习、用户工作,将按照他们的使用频次垂直切分到不同的表中,减少单表的访问压力。

案例:将商品信息表按照访问频率分为两个表,商品信息和商品描述表bc87f24e4dd62145e7f166aa9d015b6c.png

f09143973bf200d08624defc82150d5f.png

94d4364ab71f3b8985e49eb44bde296f.png

水平分表:

在同一个数据库内,把同一个表的数据按照业务属性、时间、取键、Hash、数据量进行切分到多个表中。

案例: 将同一个库中的商品表的数据分成两个商品表中,可以在一个或多个库中

5a34b6756da5c33a79d64a792fb65e31.png

8d35253f307171983ed063dc61c6140b.png

垂直分表和水平分表的区别:

垂直分表: 将一个表按照字段访问的频次分到多个表中,可以是一个或多个数据库(分的是字段)

水平分表: 将一个表按照数据分到多个表中,可以是一个或多个数据库(分的是数据)

6、水平分表面临的困难及开源产品

数据库代理方式访问:

6222c6d3970ee3a51580c87507fdab42.png

非代理方式访问:SQL语句直接访问数据库服务器,比代理方式访问快。

e7f865d7cc7dba380675a0b4c5825ea7.png

MYSQL Fabric官方产品对于分表还是比较实用的。

ea43955a5987ee425342c364d7e326f5.png

水平分表的实现虽然难以实现,但是对于自己特定项目的分库分表还是比较好实现的,对于通用的分库分表难以实现,下来就看怎么实现吧!!!

7、基本的实现思路:

1、解析路由(找对应数据源、表):根据业务功能、SQL解析等方式,找到要访问的数据源和表

2、执行相应表的功能(根据sql实现具体功能)

3、对查询结果集进行合并,二次处理。(合并查询结果集,执行子查询)

4、是否有事务(处理不同方式的事务)fc8cb39f921b2edf2369ad0330981d18.png

8、实现的层面

推荐使用DAO层实现方式3a5450d4669e1137b360844de6fc612f.png

9、小结

dd9ce6d7d989b611c5dc9df6b0c8b692.png

10、分库分表带来的问题

分库分表能有效的缓解单机和单库带来的性能瓶颈和压力,突破网络IO、硬件资源、连接属的瓶颈,同时也带来了一些问题

1、事务一致性问题

分库分表把数据分布到不同的数据库服务器,不可避免带来分布式事务问题

2、跨节点关联查询

本来可以通过join连接查询的sql语句,现在得两次查询

第一次:查到关联数据的id。

第二次:根据id找到对应的数据。

3、跨节点分页、排序函数

合二为一

19ce9ec0669203ba52b813e977144bdc.png

c532eb6506f86e5001eb5e9ef2ee293e.png

4、主键避重

全局主键解决主键重复问题

b9cb904e6f9b41b304605c0d9dd8704c.png

5、公共表

例如:地区表(商品表和店铺表的依赖公共表)

在每个数据库服务中都建立公共表,所有对公共表的更新操作都同时发送到所有分库执行。

小伙伴们,对于MYSQL数据库的分库分表理论就介绍到这里了,下期我们用sharding-JDBC框架来实现吧!!!

get到的小伙伴记得点赞👍+关注哦!小红♥走起来!!!😘😘😘

复制代码

http://www.jmfq.cn/news/5273191.html

相关文章:

  • 网站建设公司ipo/站长平台
  • 卧龙区2015网站建设价格/网上怎么免费推广
  • 网站图片滚动素材/优化大师tv版
  • 网站模板如何修改域名/如何开网站呢
  • wap免费建站/公司网站制作模板
  • 凡科可以做淘客网站吗/安卓手机优化神器
  • 怎么给做的网站做百度搜索/怎么创建一个网址
  • 郑州网站建设预订/做一个推广网站大概多少钱
  • 网站接入服务商是什么/网络培训心得体会总结
  • 佛山网站制作建设/2023年7 8月十大新闻
  • b2b网站建设方案/企业网站建设报价表
  • 深圳建设网站费用/朝阳网站seo
  • 黄骅网站建设/google官网
  • 网站开发能用udp协议吗/市场调研的方法有哪些
  • 深圳企搜网站建设/网络营销的内涵
  • wordpress电影采集/seo研究中心倒闭
  • 南通网站建设排名公司/网站快速优化排名软件
  • 天津 交友 网站建设/在线crm
  • 桂林小学网站建设/品牌营销公司
  • p2p网上贷款网站建设方案.docx/seoaoo
  • 蚌埠百度做网站/社群营销是什么意思
  • 济南企业网站制/搜索广告是什么意思
  • 有独立IP如何建设网站/百度推广关键词排名规则
  • 免费的网站生成app/网站网络营销公司
  • 个人网站怎么设计/重庆网站推广软件
  • 怎么做淘宝网站赚钱技巧/竞价排名采用什么计费方式
  • 网站的域名分为哪些/珠海百度seo
  • 湛江网站设计/灯塔网站seo
  • 网站用什么做备份/seo策略分析
  • 做亚马逊运营要看哪些网站/b站怎么推广