【日积月累】Mysql性能优化

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

目录

【日积月累】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 调优工具

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PHP入门】1.1-PHP初步语法

-PHP语法初步- PHP是一种运行在服务器端的脚本语言&#xff0c;可以嵌入到HTML中。 1.1.1PHP代码标记 在PHP历史发展中&#xff0c;可以使用多种标记来区分PHP脚本 ASP标记&#xff1a; <% php代码 %>短标记&#xff1a; <? Php代码 ?>&#xff0c;以上两种…

【TB作品】51单片机 实物+仿真-电子拔河游戏_亚博 BST-M51

代码工程。 http://dt4.8tupian.net/2/28880a66b12880.pg3这段代码是用于一个数字拔河游戏的嵌入式系统&#xff0c;采用了基于8051架构的单片机&#xff0c;使用Keil C51编译器。 主要功能包括&#xff1a; 数码管显示&#xff1a;使用了四个数码管&#xff08;通过P2的控制…

从零开始在Linux服务器配置并运行YOLO8+Web项目

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 神经网络&#xff08;随缘更新&#xff09; ✨特色…

js基础入门

先来一点js基础&#xff0c;其实js大部分的时候都在处理对象或者数组。 对象四个基本操作&#xff1a;增删改查 掌握元素的增删改查&#xff0c;了解如何拷贝&#xff0c;深拷贝和浅拷贝的区别。详情见代码 <script>//创建对象一共有三种赋值声明的语法let obj{} //赋值…

Ps:动作 - 基础篇

Ps 中的动作 Action可以让你自动、连续地完成多个操作&#xff0c;包括基础的调色、复杂的合成等。对于经常要执行的任务&#xff0c;使用动作&#xff0c;可大大提高工作效率。 Ps菜单&#xff1a;窗口/动作 Window/Action 快捷键&#xff1a;Alt F9 ◆ ◆ ◆ 认识动作面板…

如何用Python向图像中加入噪声

我们在做机器视觉项目的过程中&#xff0c;有的时候需要向图像中加入噪声。Pytorch本身不支持类似的功能&#xff0c;如果自己写的话&#xff0c;不但麻烦&#xff0c;而且容易出错。好在skimage支持这个功能。代码如下&#xff1a; import skimage import matplotlib.pyplot …

web之CSS悬停效果页面设计

参考小米商城的“手机”页面&#xff0c;做出一个“手机”的标签&#xff0c;实现当鼠标悬停在“手机”上时&#xff0c;出现手机系列菜单&#xff1b;当鼠标移走时&#xff0c;菜单页面消失的效果&#xff01; 参考图&#xff1a; 实现代码&#xff1a; <!DOCTYPE html&g…

机器学习笔记 - 时间序列分析基础概念解释

一、简述 时间序列分析是一种统计方法,可检查定期收集的数据点以揭示潜在的模式。该技术与各个行业高度相关,因为它可以根据历史数据做出决策和预测。通过了解过去并预测未来,时间序列分析在金融、医疗保健、能源、供应链管理、天气预报、营销等领域发挥着至关重要的作用。 …

How to helm install prometheus 【 helm 安装 prometheus 】

文章目录 1. 简介2. 简单部署3. 数据持久化部署3.1 设置必要的环境变量3.2 运行安装脚本3.3 查看 1. 简介 kube-prometheus-stack是一个基于Prometheus和Grafana的开源软件套件&#xff0c;用于在Kubernetes集群中进行监控和可视化。它提供了一套完整的工具和组件&#xff0c;…

神经网络学习小记录76——Tensorflow2设置随机种子Seed来保证训练结果唯一

神经网络学习小记录76——Tensorflow2设置随机种子Seed来保证训练结果唯一 学习前言为什么每次训练结果不同什么是随机种子训练中设置随机种子 学习前言 好多同学每次训练结果不同&#xff0c;最大的指标可能会差到3-4%这样&#xff0c;这是因为随机种子没有设定导致的&#x…

ArcMap自定义脚本工具箱迁移至ArcGIS pro

本文记录了将ArcMap10.7创建的自定义脚本工具箱&#xff08;.tbx&#xff09;迁移至ArcGIS pro的过程 ArcGIS Pro使用的是python版本与ArcMap不同&#xff0c;前者为python3&#xff0c;后者为python2。由于python3 和 python2 的部分语法不兼容&#xff0c;以及一些地理处理工…

Redis设计与实现之事务

一、事务 Redis 通过 MULTI 、DISCARD 、EXEC 和 WATCH 四个命令来实现事务功能&#xff0c;本章首先讨 论使用 MULTI 、DISCARD 和 EXEC 三个命令实现的一般事务&#xff0c;然后再来讨论带有 WATCH 的事务的实现。 因为事务的安全性也非常重要&#xff0c;所以本章最后通过…

季节性ARIMA模型进行时间序列预测

首先对于模型&#xff1a; SARIMA(p,d,q)x(P,D,Q)。 参数的选择的注意事项如下&#xff1a; where, P, D and Q are SAR, order of seasonal differencing and SMA terms respectively and ‘x’ is the frequency of the time series. If the model has well defined season…

【C++】POCO学习总结(十八):XML

【C】郭老二博文之&#xff1a;C目录 1、XML文件格式简介 1&#xff09;XML文件的开头一般都有个声明&#xff0c;声明是可选 <&#xff1f;xml version"1.0" encoding"UTF-8"?>2&#xff09;根元素&#xff1a;XML文件最外层的元素 3&#xff…

怎么使用会声会影?2024年最新使用会声会影的具体步骤

一听说视频剪辑我们就不由得联想到电影、电视等一些高端的视频剪辑技术&#xff0c;大家都觉得视频剪辑是一个非常复杂而且需要很昂贵的设备才可以完成的技术活&#xff0c;这对很多“门外汉”来说都可望而不可及。实际上&#xff0c;使用会声会影剪辑视频不仅是很多人都可以操…

机器视觉技术与应用实战(开运算、闭运算、细化)

开运算和闭运算的基础是膨胀和腐蚀&#xff0c;可以在看本文章前先阅读这篇文章机器视觉技术与应用实战&#xff08;Chapter Two-04&#xff09;-CSDN博客 开运算&#xff1a;先腐蚀后膨胀。开运算可以使图像的轮廓变得光滑&#xff0c;具有断开狭窄的间断和消除细小突出物的作…

每天五分钟计算机视觉:网络中的网络(NiN)

本文重点 前面的课程中我们学习了众多的经典网络模型&#xff0c;比如LeNet、AlexNet、VGG等等&#xff0c;这些网络模型都有共同的特点。 它们的特点是&#xff1a;先由卷积层构成的模块充分提取空间特征&#xff0c;然后再由全连接层构成的模块来输出分类结果。也就是说它们…

设计模式——备忘录模式

引言 备忘录模式是一种行为设计模式&#xff0c; 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 问题 假如你正在开发一款文字编辑器应用程序。 除了简单的文字编辑功能外&#xff0c; 编辑器中还要有设置文本格式和插入内嵌图片等功能。 后来&#xff0c; 你…

EXCEL SUM类函数

参考资料 万能函数SUMPRODUCT超实用的10种经典用法 目录 一. SUM二. SUMIF2.1 统计贾1的销售额2.2 > 900 的销售总额2.3 计算贾1和贾22的销售总额2.4 多区域计算 三. SUMIFS3.1 统计苹果&#xff0c;在第一季度的总数量3.2 统计苹果&#xff0c;在第一季度&#xff0c;>…

时序预测 | Python实现GRU-XGBoost组合模型电力需求预测

时序预测 | Python实现GRU-XGBoost组合模型电力需求预测 目录 时序预测 | Python实现GRU-XGBoost组合模型电力需求预测预测效果基本描述程序设计参考资料预测效果 基本描述 该数据集因其每小时的用电量数据以及 TSO 对消耗和定价的相应预测而值得注意,从而可以将预期预测与当前…