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

网站怎么做页面解析跳转模板网站音响案例

网站怎么做页面解析跳转,模板网站音响案例,网站建设高端网页设计,龙岩营销型网站建设大家好,我是工藤学编程 🦉一个正在努力学习的小博主,期待你的关注实战代码系列最新文章😉C实现图书管理系统(Qt C GUI界面版)SpringBoot实战系列🐷【SpringBoot实战系列】Sharding-Jdbc实现分库…
大家好,我是工藤学编程 🦉一个正在努力学习的小博主,期待你的关注
实战代码系列最新文章😉C++实现图书管理系统(Qt C++ GUI界面版)
SpringBoot实战系列🐷【SpringBoot实战系列】Sharding-Jdbc实现分库分表到分布式ID生成器Snowflake自定义wrokId实战
环境搭建大集合环境搭建大集合(持续更新)
分库分表分库分表之优缺点分析

前情摘要:

本文章目录

  • (一)垂直分库分表优化方案
    • 一、垂直分表:基于字段访问频次的IO优化
      • 1. 核心原理与应用场景
      • 2. 拆分原则与实践案例
    • 二、垂直分库:突破单机资源瓶颈的业务解耦
      • 1. 核心价值与适用场景
      • 2. 拆分策略与架构演进
    • 三、垂直拆分的局限性
      • 1. 未解决的核心问题
  • (二)水平分库分表
    • 一、水平分表:单库内的数据切片技术
      • 1. 核心原理与应用场景
      • 2. 拆分规则与实践案例
    • 二、水平分库:跨服务器的数据分布技术
      • 1. 核心价值与适用场景
      • 2. 分库策略与架构演进
    • 三、水平分库分表的技术挑战与解决方案
      • 1. 核心技术难点

(一)垂直分库分表优化方案

一、垂直分表:基于字段访问频次的IO优化

1. 核心原理与应用场景

垂直分表是将单张大表按字段功能拆分为「主表」与「扩展表」,通过减少单次查询的IO数据量提升性能,尤其适用于以下场景:

  • 表中存在大字段(如text/blob类型的商品描述、详情);
  • 字段访问频次差异显著(如商品价格每日访问10万次,而商品详情每日访问1万次)。

2. 拆分原则与实践案例

三大拆分原则

  1. 低频字段分离:将30天内访问频次<100次的字段放入扩展表;
  2. 大字段独立:text/blob类型字段(如商品详情)必须拆分,避免IO阻塞;
  3. 查询组合优先:经常一起查询的字段(如商品标题、价格、库存)保留在主表。

商品表拆分实例

-- 拆分前(单表12字段,含4个大字段)
CREATE TABLE `product` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`title` varchar(524) DEFAULT NULL COMMENT '商品标题',`cover_img` varchar(524) DEFAULT NULL COMMENT '封面图',`price` int(11) DEFAULT NULL COMMENT '价格(分)',`total` int(10) DEFAULT '0' COMMENT '总库存',`left_num` int(10) DEFAULT '0' COMMENT '剩余库存',`learn_base` text COMMENT '课前须知',`learn_result` text COMMENT '学习目标',`summary` varchar(1026) DEFAULT NULL COMMENT '商品概述',`detail` text COMMENT '商品详情',`create_time` datetime DEFAULT CURRENT_TIMESTAMP,`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;-- 拆分后(主表6字段+扩展表6字段)
CREATE TABLE `product_main` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`title` varchar(524) DEFAULT NULL COMMENT '商品标题',`cover_img` varchar(524) DEFAULT NULL COMMENT '封面图',`price` int(11) DEFAULT NULL COMMENT '价格(分)',`total` int(10) DEFAULT '0' COMMENT '总库存',`left_num` int(10) DEFAULT '0' COMMENT '剩余库存',`create_time` datetime DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`),KEY `idx_price` (`price`),KEY `idx_stock` (`left_num`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;CREATE TABLE `product_extend` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`product_id` int(11) NOT NULL COMMENT '主表ID',`learn_base` text COMMENT '课前须知',`learn_result` text COMMENT '学习目标',`summary` varchar(1026) DEFAULT NULL COMMENT '商品概述',`detail` text COMMENT '商品详情',`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`),UNIQUE KEY `uk_product_id` (`product_id`),KEY `idx_update` (`update_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

二、垂直分库:突破单机资源瓶颈的业务解耦

1. 核心价值与适用场景

垂直分库是按业务模块将数据拆分到不同数据库(如用户库、订单库、商品库),核心解决:

  • 单机CPU/内存利用率长期>90%的性能瓶颈;
  • 数据库连接数不足(如MySQL默认100连接数无法支撑高并发);
  • 业务模块间资源竞争(如订单写入阻塞商品查询)。

2. 拆分策略与架构演进

典型演进路径

单体架构(单库) → 垂直分库(按业务拆库) → 微服务架构(库+服务解耦)

电商系统分库实例

拆分前:
- 数据库:ecommerce_db(含用户、订单、商品表)
- 问题:订单高峰期写入导致商品查询超时,CPU利用率95%拆分后:
- 用户库:user_db(用户表、会员表)
- 订单库:order_db(订单表、订单详情表)
- 商品库:product_db(商品主表、商品扩展表)
- 效果:各库CPU利用率降至40-60%,连接数利用率降低30%

单体架构示意图:
在这里插入图片描述
微服务架构示意图:
在这里插入图片描述

三、垂直拆分的局限性

1. 未解决的核心问题

垂直分库分表虽能提升并发与IO效率,但无法解决单表数据量过大的问题:

  • 单表数据量瓶颈:如订单表日增10万条,1年后单表数据量达3650万,查询性能仍会下降;
  • 跨库查询复杂性:如需要查询“用户近30天购买的商品”,需跨用户库、订单库、商品库关联,性能损耗显著。

(二)水平分库分表

一、水平分表:单库内的数据切片技术

1. 核心原理与应用场景

当单表数据量突破500万行时,索引效率大幅下降,全表扫描耗时从毫秒级飙升至秒级。水平分表通过将单表数据按规则拆分到N个结构相同的小表中,核心解决:

  • 查询性能瓶颈:如订单表数据量达3000万时,单次查询耗时从500ms增至3s;
  • 锁表时间过长:大表DDL操作(如添加字段)可能锁表数分钟,影响业务可用性。

2. 拆分规则与实践案例

三大主流拆分策略

策略类型拆分逻辑典型场景实现复杂度
RANGE范围拆分按时间/ID范围分片(如order_2024表存2024年订单)日志表、交易表等有时间特征的数据★☆☆☆☆
HASH取模拆分按字段哈希值取模(如user_id % 100用户中心、订单表等需均匀分布的数据★★☆☆☆
复合拆分组合RANGE+HASH(如先按年分表,再按用户ID取模)大规模历史数据归档场景★★★☆☆

二、水平分库:跨服务器的数据分布技术

1. 核心价值与适用场景

当水平分表后单库仍面临资源瓶颈(如CPU利用率>90%、带宽跑满),需进一步水平分库,将数据分布到多个物理服务器,解决:

  • 单机资源上限:单台数据库服务器CPU 32核、内存128GB的硬件限制;
  • 并发连接瓶颈:单库MySQL最大连接数16384,高并发场景下仍可能不足;
  • IO带宽限制:单台服务器磁盘IO吞吐量(如SSD约2000MB/s)无法支撑海量读写。

2. 分库策略与架构演进

典型分库方案对比

方案类型拆分维度部署实例适用场景
按业务分库按模块拆分(如用户库、订单库)电商系统拆分为用户库+订单库+商品库业务解耦优先,初期架构
按数据分库按数据特征拆分(如用户ID取模分库)100个库,每个库存1%用户数据高并发、海量数据场景
混合分库先按业务分库,再按数据分表订单库拆分为100个分库,每个库含10张分表超大规模系统(如日活千万级应用)

三、水平分库分表的技术挑战与解决方案

1. 核心技术难点

问题类型具体表现解决方案
跨库Join查询订单库与商品库分库后,无法直接JOIN1. 冗余字段(订单表冗余商品名称)
2. 应用层聚合(先查订单ID,再批量查商品)
分布式事务跨库更新时事务一致性问题1. 最终一致性(消息队列补偿)
2. 强一致性(2PC/3PC协议)
全局主键生成分库后自增ID冲突1. 雪花算法(64位唯一ID)
2. 分布式ID生成器(如百度UidGenerator)
分页排序跨库查询时LIMIT 1000,10性能差1. 前端限制分页深度
2. 二次查询优化(先查ID列表,再查详情)
http://www.dtcms.com/a/552054.html

相关文章:

  • 网站开发前端后端书籍wordpress 用什么编辑器
  • 建设手机网站经验分享上海网站建设设计
  • 网络营销的网站的分析化妆品网站下载
  • 北京建商城网站网站建设制作有那些
  • 效果好的免费网站建设网站建设和维护要花多少钱
  • 博客网站建设方案wordpress 插件报错
  • 做门窗安装去哪些网站找生意中国菲律宾篮球
  • 专业建网站设计公司中电科工程建设有限公司网站
  • 如何套用wordpress的源码邢台seo推广
  • 上海电子商城网站制作免费培训机构
  • html网站 怎么做seo肃宁县做网站
  • 企业建站报价微信网站是多少钱一年
  • 网站域名做链接怎么做章贡网站建设
  • 南京优化网站好看的网站建设公司
  • 使用php的大型网站天津建设协会网站
  • html5手机网站开发框架android最新版本
  • 石家庄网站制作长沙广告拍摄制作公司
  • 开发一套软件app苏州企业网站关键词优化
  • 口腔医院网站开发企业设计网站
  • 用wordpress编写网站图文广告加盟哪家好
  • 百度自己网站排名wordpress 获取备案号
  • 易语言如何做验证系统官方网站网站宽屏
  • 做摄影网站河北石家庄有什么好玩的地方
  • 做咩有D网站响网吧上不了jsp做网站用什么封装字符串
  • 网站设计制作费一元购网站的建设
  • 建设一个小说网站的步骤网络优化的内容包括哪些方面
  • 做医药行业找药的网站百度seo公司哪家强一点
  • 吉林大学学院网站建设群手机网站大全网站
  • 集团网站建网站管理系统制作软件下载
  • 制作网站民治唐山建设造价信息网的网站