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

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

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

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

相关文章

33 动态规划和递归求解不同路径II

问题描述:一个机器人位于一个mn网格的左上角(起始点在下图中标记为Start),机器人每次只能向下或者向右移动一步,机器人试图到达网格的右下角,机器人试图到达网格的右下角,现在考虑网格中有障碍物,那么从左上…

第2章 线性结构

一、选择题 1. 顺序存储结构的优点是( A ) A.存储密度大 B.插入运算方便 C.删除运算方便 D.可用于各种逻辑结构的存储表示 2. 下面关于线性表的叙述中,错误的是( B…

ACL原理和配置

一.ACL概述 1.介绍 ACL 访问控制列表,可以通过对网络中报文流的精确识别,与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。 2.概述 ACL是…

ShenYu网关注册中心之Zookeeper注册原理

文章目录 1、客户端注册流程1.1、读取配置1.1.1、用于注册的 ZookeeperClientRegisterRepository1.1.2、用于扫描构建 元数据 和 URI 的 SpringMvcClientEventListener 1.2、扫描注解,注册元数据和URI1.2.1、构建URI并写入Disruptor1.2.2、构建元数据并写入Disrupto…

[C语言]大小端及整形输出问题

假设在一个32位little endian 的机器上运行下面的程序&#xff0c;结果是多少 ? 1.1先看以下三个程序 #include <stdio.h> int main() {long long a 1, b 2, c 3;printf("%lld %lld %lld\n", a, b, c); // 1 2 3printf("%d %d %d %d %d %d\n&quo…

LeetCode第376场周赛

文章目录 1.Find Missing and Repeated Values2.Divide Array Into Arrays With Max Difference3.Minimum Cost to Make Array Equalindromic 1.Find Missing and Repeated Values 直接暴力过 class Solution { public:vector<int> findMissingAndRepeatedValues(vecto…

Learning Semantic-Aware Knowledge Guidance forLow-Light Image Enhancement

微光图像增强&#xff08;LLIE&#xff09;研究如何提高照明并生成正常光图像。现有的大多数方法都是通过全局和统一的方式来改善低光图像&#xff0c;而不考虑不同区域的语义信息。如果没有语义先验&#xff0c;网络可能很容易偏离区域的原始颜色。为了解决这个问题&#xff0…

c语言-全局变量与局部变量

目录 1、&#xff08;作用&#xff09;域的概念 2、全局与局部的相对性 3、生命周期 3、静态变量static 结语&#xff1a; 前言&#xff1a; 在c语言中&#xff0c;全局变量的可见范围是整个工程&#xff0c;而局部变量的可见范围从该变量被定义到该作用域结束&#xff0c…

JavaScript装饰者模式

JavaScript装饰者模式 1 什么是装饰者模式2 模拟装饰者模式3 JavaScript的装饰者4 装饰函数5 AOP装饰函数6 示例&#xff1a;数据统计上报 1 什么是装饰者模式 在程序开发中&#xff0c;许多时候都我们并不希望某个类天生就非常庞大&#xff0c;一次性包含许多职责。那么我们就…

【JavaEE】多线程(5) -- 阻塞队列

目录 1.阻塞队列是什么? 2.生产者消费者模型 3.标准库中的阻塞队列 4.阻塞队列的实现 1.阻塞队列是什么? 阻塞队列是⼀种特殊的队列. 也遵守 "先进先出" 的原则 阻塞队列能是⼀种线程安全的数据结构, 并且具有以下特性: 当队列满的时候, 继续⼊队列就会阻塞, …

I/O流的相关内容

首先我们了解一下什么是文件&#xff1a; 文件其实就是让我们用来保存数据的地方&#xff0c;它可以用来保存信息&#xff0c;图片&#xff0c;以及音频等各类数据。 文件流&#xff1a; 那我们是如何通过我们的程序来进行对文件的操作呢&#xff1f;这里我们就要提出一个概…

wpf将静态变量绑定到控件属性

有时候需要将后台一个静态属性绑定到xaml前台&#xff0c;经过实践&#xff0c;有如下两种绑定的方式 例如后台声明一个类&#xff0c;类中包含静态变量&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T…

Crow:Middlewares 庖丁解牛2 产生序列

include\crow\utility.h内有这样一段比较晦涩难懂的代码: template<class T> using Invoke = typename T::type;template<unsigned...> struct seq {using type = seq; };template<class S1, class S2> struct concat;template<unsigned... I1, unsigne…

2023年金属非金属矿山(地下矿山)安全管理人员证模拟考试题库及金属非金属矿山(地下矿山)安全管理人员理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员证模拟考试题库及金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员理论考试试题是由安全生产模拟考试一点通提供&#xff0c;金属非金…

【linux--进程通信之共享内存】

目录 一、共享内存的原理二、共享内存的数据结构三、共享内存使用的函数2.1ftok函数2.2shmget函数2.3shmctr函数2.4shmat函数2.5shmdt函数 四、实现进程通信 一、共享内存的原理 共享内存实际是操作系统在实际物理内存中开辟的一段内存。 共享内存实现进程间通信&#xff0c;是…

大数据之如何利用爬虫爬取数据做分析

目录 前言 爬虫概述 爬虫实现 1. 获取代理IP 2. 爬取数据 3. 多线程爬取 总结 前言 随着互联网和智能设备的普及&#xff0c;数据量逐年增长&#xff0c;数据分析和挖掘成为了热门领域&#xff0c;其中大数据分析技术和爬虫技术是重要的手段之一。本文主要介绍如何使用…

Python框架批量数据抓取的高级教程

一、背景介绍 批量数据抓取是一种常见的数据获取方式&#xff0c;能够帮助我们快速、高效地获取网络上的大量信息。本文将介绍如何使用Python框架进行大规模抽象数据&#xff0c;以及如何处理这个过程中可能遇到的问题。 二、项目需求 我们将爬取大量知乎文章&#xff0c;讨…

扁平化菜单功能制作

网页效果&#xff1a; HTML部分&#xff1a; <body><ul class"nav"><li><a href"javascript:void(0);">菜单项目一</a><ul><li>子菜单项01</li><li>子菜单项02</li><li>子菜单项03<…

matlab面向对象编程入门笔记

文章目录 1. 类和结构2. 定义类3. 属性3.1 private/protected/public属性3.2 constant属性3.3 hidden属性 4. 方法4.1 private/protected/public方法4.2 static方法4.3 外部方法 5. 动态调用6. 继承-超类6.1 handle超类6.2 dynamicprops 和 hgsetget子类 7. 封闭(sealed)类、方…

spring 项目中如何处理跨越cors问题

1.使用 CrossOrigin 注解 作用于controller 方法上 示例如下 RestController RequestMapping("/account") public class AccountController {CrossOriginGetMapping("/{id}")public Account retrieve(PathVariable Long id) {// ...}DeleteMapping(&quo…