news 2026/1/24 19:17:18

4.1.17.8.高性能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
4.1.17.8.高性能

1.主从复制

在主服务器上,所有修改数据的语句(如 INSERT、UPDATE、DELETE)会被记录到二进制日志中。

主服务器上的一个线程(二进制日志转储线程)负责读取二进制日志的内容并发送给从服务器。

从服务器接收到二进制日志数据后,会将这些数据写入自己的中继日志(Relay Log)。中继日志是从服务器上的一个本地存储。

从服务器上有一个 SQL 线程会读取中继日志,并在本地数据库上执行,从而将更改应用到从数据库中,完成同步。

2.分库分表

2.1.分库

①垂直分库:按照业务模块将不同的表拆分到不同的库中,例如,用户表、订单表、商品表等分到不同的库中。

②水平分库:按照一定的策略将一个表中的数据拆分到多个库中,例如,按照用户 id 的 hash 值将用户表拆分到不同的库中。

2.2.分表

2.2.1.分表的方式分类

垂直拆分可以减轻查询业务的基本数据,不需要附带一些数据量大的字段的查询压力。

当表的数据量过大时,仍然要考虑水平分表,将一个表的数据分散到多个表中,以减轻单表的查询压力

2.2.3.分表策略

为了实现水平分表,需要设计合适的路由策略来确定数据应该存储在哪个表中,具体哪个表,由分片键(Sharding Key)来决定,分片键的选择应满足以下条件:

1)高区分度:分片键的值应尽量均匀分布,以避免数据倾斜。

2)查询频率高:选择经常在查询条件中使用的字段作为分片键,有助于提高查询效率。

3)写入频率高:选择经常被写入的字段,可以均匀分布写入负载。

那常见的路由策略有三种,分别是范围路由、Hash 路由和配置路由。

2.2.3.1.范围路由

什么是范围路由?

范围路由是根据某个字段的值范围进行分表。这种方式适用于分片键具有顺序性或连续性的场景。

范围路由的优点是实现简单,可以随着数据的增加平滑地扩充新的表。适用于按时间或按顺序增长的字段(如时间戳、订单号等)。缺点是可能出现数据倾斜问题,导致某些表的数据量明显大于其他表。

2.2.3.2.Hash路由(?)

哈希路由是通过对分片键进行哈希计算,然后取模来确定数据存储的表。哈希值决定了数据分布,通常能较好地平衡数据量。

哈希路由的优点是数据可以均匀分布,避免了数据倾斜,但范围查询时可能会涉及多个表,性能较差。

2.2.3.3.配置路由

配置路由是通过配置表来确定数据存储的表,适用于分片键不规律的场景。

配置路由的优点是可以根据实际情况灵活配置。缺点是需要额外的配置表,维护成本较高。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/25 9:54:27

3.2.15.1.常见注解

1.Web开发方面Controller:用于标注控制层组件。RestController:是Controller 和 ResponseBody 的结合体,返回 JSON 数据时使用。RequestMapping:用于映射请求 URL 到具体的方法上,还可以细分为:GetMapping&…

作者头像 李华
网站建设 2026/1/25 3:25:47

Java毕设选题推荐:基于Spring Boot+vue的学生信息管理系统基于javaweb的学生管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/24 22:02:31

小程序毕设选题推荐:基于springboot+微信小程序的应急救援小能手软件系统的设计与实现基于微信小程序的应急救援小能手软件系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/25 4:43:56

Ubuntu切换wayland和x11

Ubuntu 25.10系统之后就不支持x11了,Ubuntu25.04仍然支持wayland 查看一下当前显示是什么显示协议: echo $XDG_SESSION_TYPE打开以下文件,并且将对应行进行注释,即删除对应行的# sudo vim /etc/gdm3/custom.conf# WaylandEnablefa…

作者头像 李华
网站建设 2026/1/25 1:49:54

Vue2如何通过插件实现100万文件上传的进度监控?

大文件上传方案设计与实现(政府信创环境兼容) 方案背景 作为北京某软件公司的开发人员,我负责为政府客户实现一个兼容主流浏览器和信创国产化环境的大文件上传系统。当前需求是支持4GB左右文件的上传,后端使用PHP,前…

作者头像 李华
网站建设 2026/1/25 9:54:23

强化学习系统性学习笔记(一):从理论基础到策略优化

1.1 理论溯源:从生物学习到数学框架强化学习的思想源头可以追溯到生物行为心理学中的"试错学习"原理。在自然界中,生物个体通过反复尝试不同行为并观察环境反馈,逐步学会选择能够带来更好结果的行动策略。这一朴素而普适的学习模式…

作者头像 李华