【日积月累】Mysql性能优化

news2024/12/23 16:40:30

主图==========

目录

【日积月累】Mysql性能优化

  • 1.前言
  • 2.MySql性能优化的主要方面
    • 2.1硬件和操作系统成面优化
    • 2.2架构设计层优化(表结构)
    • 2.3程序配置优化
    • 2.5表结构及索引优化
    • 2.4sql执行优化
  • 3.总结
  • 4.参考


文章所属专区 积月累


1.前言

MySQL是一种常用的开源关系型数据库管理系统,广泛应用于各种应用场景。但随着数据规模的增长和复杂查询的增多,MySQL性能优化变得尤为重要。本篇文章将探讨一些提高MySQL性能的关键策略和技巧,为读者提供有效的优化建议。无论是通过调整服务器硬件配置、优化查询语句、合理设计索引或者使用缓存技术,我们都将尽力介绍最佳实践。通过细致深入地了解MySQL的各个方面,希望读者能够提高数据库的响应速度,提升系统的整体性能,实现高效稳定的数据管理。

2.MySql性能优化的主要方面

第一个是硬件和操作系统成面优化,第二个是架构设计层优化,第三个是程序配置优化,第四个是sql执行优化。

2.1硬件和操作系统成面优化

从硬件层面来讲,影响Mysql性能的因素主要是1.cpu可用内存代销2.磁盘读写速度3.网络带宽
从操作系统层面来讲,主要是文件句柄数,以及操作系统的网络配置都会影响Mysql的性能,这一块主要就是运维人员或者DBA负责处理,根据实际业务体量,做出相适应的配置,避免造成资源过剩,浪费。

2.2架构设计层优化(表结构)

我们知道Mysql是一个磁盘io访问非常频繁的关系型数据库,在高并发和高性能的场景中Mysql必然会承担巨大的压力,在这一块可以做出优化
1.搭建主从集群,如果是单个Mysql服务器的话,一旦服务器宕机,会导致所有依赖于Mysql的响应。而使用了主从集群或者主主集群的方式搭建Mysql可以保证高可用性。
2.针对热点数据可以引入高效的分布式数据库,Redis,MongoDB,他们可以很好缓解数据库的访问压力,同时还能提升检索的性能。

2.3程序配置优化

以Mysql 5.7版本为例
1.在my.cnf中修改最大连接数(默认151)
2.在my.cnf中修改binlog(默认不开启)
3.在my.cnf中修改Bufferpool配置开启缓存池
这一块也是根据实际的业务场景由使用者或者DBA,运维人员去配置,Mysql只是提供一些默认配置。

2.5表结构及索引优化

1.读写分离,在读多写少的场景中可以通过读写分离避免读写冲突导致的性能问题。
2.分库分表,分库可以减少服务器的一个io压力,通过分表可以降低单表数据量从而提升sql查询效率
3.为字段选择合适的数据类型
4.为查询数据增加必要的索引

2.4sql执行优化

1.避免使用 * 查询(全表查询),写清楚需要查询的字段,这种方式性能开销非常大,并且失去了覆盖索引的能力。
2.小数据集驱动大数据集,用 in 不要用exists。
3.最好是一条sql操作一张表,避免其中某张表查询慢。
4.批量插入代替循环插入,用Mybatis批量处理insertBach(list)。
5.用limit限制返回条数,避免内存溢出。
6.用limit分页查询时pageNo不断增大,应该在查询语句前面川 lastMaxId(前端传)
7.查询时,缩小数据集的查询条件放前面

3.总结

MySQL是一款广泛使用的开源关系型数据库管理系统,它在许多应用场景中发挥着重要作用。然而,随着数据规模的增长和复杂查询的增多,MySQL的性能优化变得尤为重要。

4.参考

B站视频1
一文搞定MySQL性能调优
添MySQL性能调优的10个方法
关于MySQL数据库性能优化方法,看这一篇文章就够了
Mysql官方文档
4款 MySQL 调优工具

给个三连吧 谢谢谢谢谢谢了
在这里插入图片描述

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

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

相关文章

WorkPlus:保护组织数据安全与提升企业效率的局域网即时通讯软件

在当今互联网时代,随着企业信息化的进一步推进,数据安全和高效沟通成为企业发展不可忽视的重要因素。局域网即时通讯软件WorkPlus以其强大的数据保护功能和便利的沟通协作特性,成为企业选择的首选软件解决方案。 为何企业需要安全的即时消息…

Unity升级到2022版本后,打开Spine会卡住

1)Unity升级到2022版本后,打开Spine会卡住 2)iPhone在同时播放多个音效的时候会压低某些音源的音量 3)在Y77手机上出现IMGSRV:GetMainShaderConstantBufferBaseAddress: Unsupported 4)UE4打包后在部分安卓机型出现“花…

HarmonyOS4.0从零开始的开发教程18HarmonyOS应用/元服务上架

HarmonyOS(十六)HarmonyOS应用/元服务上架 简介 随着生活节奏的加快,我们有时会忘记一些重要的事情或日子,所以提醒功能必不可少。应用可能需要在指定的时刻,向用户发送一些业务提醒通知。例如购物类应用&#xff0c…

fckeditor编辑器改造示例:增加PRE,CODE控件

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置,前后端开发环境的配置,编辑器的配置,网络服务的配置,网络命令的应用与配置,windows常见问题的解决等。 文章目录 修改方法:1)修改fckco…

Linux 基本语句_16_Udp网络聊天室

代码&#xff1a; 服务端代码&#xff1a; #include <stdio.h> #include <arpa/inet.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdlib.h> #include <unistd.h> #include <string…

STM32 DAC+串口

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、DAC是什么&#xff1f;二、STM32 DAC1.什么型号有DAC2. 简介3. 主要特点4. DAC框图5. DAC 电压范围和引脚 三、程序步骤1. 开启DAC时钟2. 配置引脚 PA4 PA5…

【数学建模】《实战数学建模:例题与讲解》第十二讲-因子分析、判别分析(含Matlab代码)

【数学建模】《实战数学建模&#xff1a;例题与讲解》第十二讲-因子分析、判别分析&#xff08;含Matlab代码&#xff09; 基本概念时间判别费歇判别贝叶斯判别 习题10.31. 题目要求2.解题过程3.程序4.结果 习题10.6&#xff08;1&#xff09;1. 题目要求2.解题过程——对应分析…

Stable-Diffusion|从图片反推prompt的工具:Tagger(五)

stable-diffusion-webui-wd14-tagger 前面几篇&#xff1a; Stable-Diffusion|window10安装GPU版本的 Stable-Diffusion-WebUI遇到的一些问题&#xff08;一&#xff09; 【Stable-Diffusion|入门怎么下载与使用civitai网站的模型&#xff08;二&#xff09;】 Stable-Diffusi…

PyQt6 QDial旋钮控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

Linux----文件权限命令

1. chmod命令的介绍 命令说明chmod修改文件权限 chmod修改文件权限有两种方式: 字母法数字法 2. chmod 字母法的使用 角色说明: 角色说明uuser, 表示该文件的所有者ggroup, 表示用户组oother, 表示其他用户aall, 表示所有用户 权限设置说明: 操作符说明增加权限-撤销权…

性能测试之Locust(完整版)

官方文档&#xff1a;Locust说明文档 一、Locust简介 1、定义 Locust是一款易于使用的分布式负载测试工具&#xff0c;完全基于事件&#xff0c;即一个locust节点也可以在一个进程中支持数千并发用户&#xff0c;不使用回调&#xff0c;通过gevent使用轻量级过程&#xff08…

什么软件可以压缩视频大小?超级简单

什么软件可以压缩视频大小&#xff1f;当我们想将视频上传到网上时&#xff0c;有时候会遇到视频因为体积太大而无法上传的问题&#xff0c;这种情况就需要将视频进行压缩了。那什么软件可以压缩视频大小呢&#xff1f;下面小编就来为大家介绍压缩视频的方法&#xff0c;支持批…

SpringBoot+FastJson 优雅的过滤 Response Body

Spring 源码系列 1、Spring 学习之扩展点总结之后置处理器&#xff08;一&#xff09; 2、Spring 学习之扩展点总结之后置处理器&#xff08;二&#xff09; 3、Spring 学习之扩展点总结之自定义事件&#xff08;三&#xff09; 4、Spring 学习之扩展点总结之内置事件&#xf…

项目实战:自动驾驶之方向盘操纵

项目介绍 根据汽车前方摄像头捕捉的画面,控制汽车方向盘转动的方向和角度,这是自动驾驶要解决的核心问题。这个项目主要是通过使用深度神经网络解决一个回归问题。不同于分类、识别场景,回归问题中神经网络输出的是一个连续的值。 通过这个项目的学习,可以将神经网络用于通…

Flink系列之:大状态与 Checkpoint 调优

Flink系列之&#xff1a;大状态与 Checkpoint 调优 一、概述二、监控状态和 Checkpoints三、Checkpoint 调优四、RocksDB 调优五、增量 Checkpoint六、RocksDB 或 JVM 堆中的计时器七、RocksDB 内存调优八、容量规划九、压缩十、Task 本地恢复十一、主要&#xff08;分布式存储…

PADS9.5 : 原图绘图图纸尺寸下修改

原图绘图图纸尺寸下修改 图页边界线也要修改 如果二者选择不一致&#xff1a; 会出现下图所示情况&#xff1a;

Django和ECharts异步请求示例

前提条件 创建django项目&#xff0c;安装配置过程这里就不讲述了。 后端url http://127.0.0.1:8000/echarts/demo/ view视图函数 from django.http import HttpResponse import jsondef EchartsDemo(request):data {}categories ["衬衫","羊毛衫",&…

基于net6的zmq调试工具

0.前言 最近在做CS架构的上位机控制软件&#xff0c;服务端和客户端是通过zmq进行通讯的&#xff0c;网上现有的工具都是tcp、串口的调试工具&#xff0c;一直没有找到一个合适的zmq调试工具。就使用C#语言开发了这个简易的zmq调试工具&#xff0c;项目地址ZmqDebuggerTool。 …

这一篇就够了!全套SpringBoot教程02

SpringBoot运维实用篇 基础篇发布以后&#xff0c;看到了很多小伙伴在网上的留言&#xff0c;也帮助超过100位小伙伴解决了一些遇到的问题&#xff0c;并且已经发现了部分问题具有典型性&#xff0c;预计将有些问题在后面篇章的合适位置添加到本套课程中&#xff0c;作为解决方…

app分发平台哪个好点?手机app应用内测分发平台支持负载均衡的重要性

随着互联网的快速发展&#xff0c;内测分发平台扮演着越来越重要的角色。而在现代应用程序的开发和运营过程中&#xff0c;负载均衡技术是不可或缺的一部分。内测分发平台支持负载均衡对于提高系统的稳定性、可靠性和性能至关重要。那么什么是负载均衡又有哪些重要性。 图片来源…