mysql高并发设计

mysql高并发设计

一、部署方案

https://blog.csdn.net/weixin_37519752/article/details/138728036

方案1:双主

image.png
1、优点
写入扩展性:两个节点都可以处理写入操作,提高了写入操作的扩展性。
高可用性:在任一节点故障时,另一个节点仍可继续提供服务,包括写入操作。
故障转移:无需复杂的故障转移机制,因为两个节点都是活跃的。
2、缺点
数据一致性:需要复杂的冲突检测和解决机制来保持数据一致性。
网络要求:对网络稳定性和延迟有较高要求,因为节点间的实时同步对网络质量敏感。
额外开销:实时同步带来的额外网络和磁盘I/O开销。
3、适用场景
分布式应用:需要在不同地理位置提供写入能力的应用。
高写入负载:需要分散写入负载以提高性能的场景。
实时数据需求:需要在多个节点实时同步数据的应用。

方案2:主从复制

一主一从,或者一主多从 mysql5.7以上版本支持

image.png
1、优点
数据冗余:提供了数据的热备份,降低了数据丢失的风险。
性能提升:一主多从,不同用户从不同数据库读取,性能提升。
扩展性:流量增大时,可以方便地增加从服务器,不影响系统使用。
负载均衡:一主多从相当于分担了主机任务,做了负载均衡。
2、缺点
数据延迟:由于复制是异步的,存在数据复制延迟的风险。
复杂性增加:增加了系统的复杂性,需要更多的维护和管理。
额外资源消耗:需要额外的硬件资源来部署从服务器。
写入性能影响:所有写入操作都在主服务器上执行,可能成为性能瓶颈。
3、适用场景
读写分离:适用于读操作远多于写操作的场景。
数据备份:用于数据的实时备份,以防止数据丢失。
高可用性需求:需要保证服务连续性的关键应用

二、mysql性能优化

1、使用索引
索引是对表中数据进行高效查询的关键。在MySQL中,可以使用B-Tree索引或哈希索引来加速查询操作
示例:

CREATE INDEX index_name ON table_name (column1, column2, ...);

2、优化查询语句
优化查询可以提高MySQL性能。可以通过合适的查询语句、索引和缓存机制来减少查询的执行时间,避免全表扫描和不必要的数据操作
示例:

# 通过使用索引和合适的查询语句
SELECT * FROM table_name WHERE column1 = "value" AND column2 = "value";# 避免使用通配符查询,可以使用索引来加速查询
SELECT * FROM table_name WHERE column1 LIKE "value%";# 避免在查询条件中使用函数,函数会导致索引失效
SELECT * FROM table_name WHERE DATE(column1) > "2021-01-01";

3、缓存优化
MySQL的缓存机制可以提高查询性能。通过适当设置查询缓存和系统缓存,可以减少磁盘IO操作,加快查询的执行速度。使用MySQL的查询缓存、InnoDB的缓冲池等

# 启用查询缓存
query_cache_type = 1
query_cache_size = 64M

4、分区分表
当数据量非常大时,可以考虑使用分区和分表来提高查询性能。分区将数据划分成多个较小的逻辑部分,每个部分可以独立地进行查询和维护。而分表是将一个大表拆分成多个小表,每个小表存储一部分数据。

# 分区
CREATE TABLE table_name (...
)
PARTITION BY RANGE (column_name) (PARTITION p1 VALUES LESS THAN (value1),PARTITION p2 VALUES LESS THAN (value2),...
)# 分表
CREATE TABLE table_name (...
)
PARTITION BY HASH (column_name) PARTITIONS 4;

5、参数调优
https://blog.51cto.com/u_12196/6967500
https://blog.51cto.com/u_13259/6936668
6、连接池管理
连接池是一种管理数据库连接的技术,可以有效地减少连接的创建和销毁开销。在高并发环境下,连接池可以提前创建好一定数量的连接,并将其保存在连接池中。当有新的请求到来时,可以从连接池中获取连接,而不需要每次都重新创建连接。这样可以大大提高并发处理能力。
7、硬件优化:
使用高性能的硬件设备,如高速CPU、大容量内存和高速磁盘,以提升数据库的处理能力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/43828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构复习计划之复杂度分析(时间、空间)

第二节:算法 时间复杂度和空间复杂度 算法(Algorithm):是对特定问题求解方法(步骤)的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。 算法可以有三种表示形式: 伪代码 自然语言 流程图 算法的五…

猫不吃东西还呕吐是什么原因?可以预防猫咪呕吐的主食冻干推荐

猫咪突然食欲不振,还出现了呕吐的症状,这究竟是为什么呢?结合我多年养猫的经验,让我们一起分析一下可能的原因。 一、 猫不吃东西还呕吐是什么原因 (1)首先、排除猫瘟 如果你的猫咪一直家养,…

【Android】基于 LocationManager 原生实现定位打卡

目录 前言一、实现效果二、定位原理三、具体实现1. 获取权限2. 页面绘制3. 获取经纬度4. 方法调用5. 坐标转换6. 距离计算7. 完整代码 前言 最近公司有个新需求,想要用定位进行考勤打卡,在距离打卡地一定范围内才可以进行打卡。本文将借鉴 RxTool 的 Rx…

php快速入门

前言 php是一门脚本语言,可以访问服务器,对数据库增删查改(后台/后端语言) 后台语言:php,java,c,c,python等等 注意:php是操作服务器,不能直接在…

微软开源项目GraphRAG——基于知识图谱的RAG简介

前言 在大型语言模型(LLM)的前沿研究中,一个核心挑战与机遇并存的领域是扩展它们的能力,以解决超出其训练数据范畴的问题。这不仅要求模型在面对全新数据时仍能保持卓越表现,还意味着开辟了全新的数据分析可能性&…

Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测

章节内容 上一节我们完成了: Hive中数据导出:HDFSHQL操作上传内容至Hive、增删改查等操作 背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭建过一次&am…

简单的基追踪一维信号降噪方法(MATLAB 2018)

基追踪法是基于冗余过完备字典下的一种信号稀疏表示方法。该方法具有可提高信号的稀疏性、实现阈值降噪和提高时频分辨率等优点。基追踪法采用表示系数的范数作为信号来度量稀疏性,通过最小化l型范数将信号稀疏表示问题定义为一类有约束的极值问题,进而转…

SpringSecurity中文文档(Servlet Authorize HttpServletRequests)

Authorize HttpServletRequests SpringSecurity 允许您在请求级别对授权进行建模。例如,对于 Spring Security,可以说/admin 下的所有页面都需要一个权限,而其他所有页面只需要身份验证。 默认情况下,SpringSecurity 要求对每个…

Umi.js 项目中使用 Web Worker

1.配置 Umi.js 在 Umi.js 中,需要通过配置来扩展 Webpack 的功能。在项目根目录下修改 config/config.ts 文件: export default defineConfig({chainWebpack(config) {config.module.rule(worker).test(/\.worker\.ts$/).use(worker-loader).loader(wo…

C语言之指针的奥秘(二)

一、数组名的理解 int arr[10]{1,2,3,4,5,6,7,8,9,10}; int *p&arr[0]; 这里使用 &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,而且是数组首元素的地址。如下: 我们发现数组名和数组⾸元素的地址打印出…

重要文件放u盘还是硬盘?硬盘和u盘哪个适合长期存储

在数字时代,我们每天都会处理大量的文件。其中,不乏一些对我们而言至关重要的文件,如家庭照片、工作文档、财务记录等。面对这些重要文件的存储问题,我们通常会面临:“重要文件放U盘还是硬盘”、“硬盘和U盘哪个适合长…

Vue2打包部署后动态修改后端接口地址的解决方法

文章目录 前言一、背景二、解决方法1.在public文件夹下创建config文件夹,并创建config.js文件2.编写config.js内容3.在index.html中加载config.js4.在封装axios工具类的js中修改配置 总结 前言 本篇文章将介绍使用Vue2开发前后端分离项目时,前端打包部署…

系统架构师考点--系统安全

大家好。今天我来总结一下系统安全相关的考点,这类考点每年都会考到,一般是在上午场客观题,占2-4分。 一、信息安全基础知识 信息安全包括5个基本要素:机密性、完整性、可用性、可控性与可审查性 (1)机密性:确保信息…

Navicat导入sql文件

文章目录 Navicat导入SQL文件,使用默认导入,不做任何修改报错尝试一修改运行时的选择 尝试二修改my.ini的配置文件 Navicat导入SQL文件,使用默认导入,不做任何修改报错 尝试一 修改运行时的选择 取消勾选 ‘每个运行中运行多重查…

3,区块链加密(react+区块链实战)

3,区块链加密(react区块链实战) 3.1 哈希3.2 pow-pos-dpos3.3非对称加密(1)对称加密AES(2)非对称加密RSA 3.4 拜占庭将军3.5 P2P网络3.6 区块链 3.1 哈希 密码学,区块链的技术名词 …

【Git的基本操作】版本回退 | 撤销修改的三种情况 | 删除文件

目录 5.版本回退 5.1选项hard&后悔药 5.2后悔药&commit id 5.3版本回退的原理 6.撤销修改 6.1情况一 6.2情况二 6.3情况三 ​7.删除文件 Git重要能力之一马,版本回退功能。Git是版本控制系统,能够管理文件历史版本。本篇以ReadMe文件为…

神器!3个免费PPT成品网站推荐+3款AIPPT工具盘点!

熬夜加班做PPT却没有头绪?别再自己憋着想了!现在凡事主打一个“抄作业”,想做ppt却没想法,可以去到ppt成品网站搜集PPT模板,或是使用时下流行的AI生成PPT工具,只需输入PPT主题,即可快速生成一份…

全网最详细的CRC讲解即计算

CRC 循环冗余码(Cyclic Redundancy Code, CRC)是一种用于校验通信链路上数字传输准确性的计算方法(通过某种数学运算来建立数据位和校验位(CRC)的约定关系的)。它是利用除法以及余数的原理来作错误侦测。 发送方: 使用…

客户关系管理怎么做?这4个工具一定要会用!

在商海浮沉中,每一位企业家和销售经理都深知,客户是企业生存与发展的基石。但如何有效管理这些宝贵的资源,让每一次互动都成为加深关系、促进成交的契机,却是一门艺术加科学的结合体。今天,咱们就来聊聊客户关系管理&a…

3SRB5016-ASEMI逆变箱专用3SRB5016

编辑:ll 3SRB5016-ASEMI逆变箱专用3SRB5016 型号:3SRB5016 品牌:ASEMI 封装:SGBJ-5 批号:2024 现货:50000 最大重复峰值反向电压:1600V 最大正向平均整流电流(Vdss):50A 功…