MySQL数据库优化看这一篇就够了(最全干货篇)

news/2024/11/19 22:23:14/

文章目录

  • 一、MySQL 主备切换以及读写分离
  • 二、SQL优化
    • 1、如何定位低效率的SQL语句-慢查询日志?EXPLAIN 执行计划怎么分析?
    • 2、sql语句优化常用的方法有哪些?
    • 3、如何优化索引?优化CRUD操作?优化分页?
    • 4、通过show profiles和show profile for query查看执行状态
  • 三、配置优化
  • 四、碎片整理优化

当面试官让你聊聊MySQL数据库性能优化,你还是只能回答优化sql,建索引吗?让我们看看还可以从哪些方面聊聊吧。其实你还可以从网速、数据量、数据库日志、内存等问题、硬件配置,当前占用资源、硬盘碎片或索引碎片等等诸多方面分析聊聊。

一、MySQL 主备切换以及读写分离

首先你要知道MySQL 主备切换以及读写分离是大方向上的数据库性能优化的重要手段。是架构层面的优化垂直拆分、水平拆分。

顺便提一下数据表设计的规范程度称之为范式。三大范式

  • 1NF:列不能再拆分
  • 2NF:所有的属性都依赖于主键
  • 3NF:所有的属性都直接依赖于主键(消除传递依赖)

更多内容可参看:MySQL 主备切换以及读写分离详解

思考问题:
“分表分库”(用什么策略分表分库?)
“主从分离”(用什么中间件?)

二、SQL优化

这里提及的SQL优化内容包括sql语句的优化、慢查询日志、EXPLAIN 执行计划分析等。

1、如何定位低效率的SQL语句-慢查询日志?EXPLAIN 执行计划怎么分析?

传送门:MySQL慢查询是怎么回事

2、sql语句优化常用的方法有哪些?

传送门:sql优化常用的方法

3、如何优化索引?优化CRUD操作?优化分页?

传送门:MySQL索引及索引优化、索引失效

通过慢日志查询可以知道哪些SQL语句执行效率低下,通过explain我们可以得知SQL语句的具体执行情况,索引使用等,还可以结合show命令查看执行状态。

4、通过show profiles和show profile for query查看执行状态

MySQL从5.0.37开始支持剖面系统来帮助用户了解SQL执行性能的细节,一般用于会话级,用于收集SQL语句的资源使用情况。

1)可以通过下面的方式来查看MySQL是否支持和开启了剖面系统:

select @@have_profiling;--YES支持
select @@profiling;--1开启



2)如果没有开启剖面系统,可以通过下面的SQL来打开它。

set profiling=1;

3)接下来就可以通过剖面系统来了解SQL的执行性能,例如:

select count(*) from test;--执行SQL语句
show profiles;--通过show profiles查看开启了profiling后的所有sql语句的id和消耗的时间
show profile for query 1;-- 注:此处的1为上一步查询结果显示的query_id值。
show profile cpu,source for query 1;--查看SQL语句的CPU及资源情况


三、配置优化

1、show variables查看MySQL服务器配置参数
2、show status查看MySQL服务器运行状态值
具体可以查看和调整那些参数配置呢?传送门:数据库优化之常用的show variables、show status配置优化

设置要根据自己的实际情况来设置,如果设置的值不在合理的范围内,并不是设置越大越好,可能设置的数值太大体现不出优化效果,反而造成系统的swap空间被占用,导致操作系统变慢,降低sql查询性能。

MySQL5.7及以后版本,改参数是动态的,修改后,无需重启MySQL,但是低版本,静态的,修改后,需要重启MySQL。

四、碎片整理优化

传送门:数据库优化之常用的show table status及ALTER TABLE 重建表

在这里插入图片描述


http://www.ppmy.cn/news/161728.html

相关文章

【选择排序算法思想及其应用】

本文主要介绍Java中选择排序算法的基本原理、实现方式以及使用场景。选择排序是一种简单的排序算法,其基本思想是在未排序的序列中找到最小(或最大)的元素,并将其放在已排序序列的末尾。本文将深入剖析选择排序的思想及其在实际应…

【Android -- 开源库】腾讯 TBS 浏览器 SDK 接入

简介 在 Android 开发项目中,经常会用到 Webview 。而 WebView 是出了名的坑,各种 Bug。腾讯 TBS 浏览服务面向应用开发商和广大开发者,提供浏览增强,内容框架,广告体系,H5游戏分发,大数据等服…

视觉数据标注需要的代码,Yolov5 xml转txt, 批量重命名文件夹中的图片文件

1. 批量重命名文件夹中的图片文件 # -*- coding:utf8 -*-import osclass BatchRename():批量重命名文件夹中的图片文件def __init__(self):self.path /home/zhy/Documents/Perception/camera_data/mine_obstacle_image/image/6/ # 表示需要命名处理的文件夹def rename(self)…

原神壁纸大全|那些你所需要的原神壁纸!

原神是一个很多的游戏,米哈游的质量大家也是知道的,所以原神出了不少的本子。那原神的手机壁纸要怎么下载呢?有没有好看的、高清、超清、4K的原神壁纸呢?那还真有,点击原神壁纸就可以了! 先来几张看看吧&am…

壁纸网站:Wallpaper Search: - wallhaven.cc

Wallpaper Search: - wallhaven.cchttps://wallhaven.cc/search?categories110&purity111&sortingdate_added&orderdesc

android替换默认壁纸库,android替换默认壁纸并添加壁纸进壁纸库

1.更换默认壁纸 frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.jpg 2.增加壁纸进壁纸库 packages/apps/Launcher2/res/drawable-sw720dp-nodpi/wallpaper_neon.jpg packages/apps/Launcher2/res/drawable-sw720dp-nodpi/wallpaper_neon_small.jpg pa…

免费高清壁纸网站推荐

10wallpaper 分类全3G壁纸 移动端ACG-P / 动漫 二次元彼岸桌面 美女 动漫CG Wallpapers CGESO 星空 宇宙Facets 几何Food Pictures 美食Game Wallpapers CGGoodfon 分类全故宫壁纸 历史H128壁纸 分类全Magdeleine 摄影莱克壁纸网 分类全极简壁纸 CGPapers.co 素材Pexels 素材Pi…

爬取 wallhaven图片到本地壁纸库

项目地址,另外知乎同名文章也是我发布的,大家可以多多关注 首先观察控制台 其次再看本地壁纸库 现在进入正题,这个小项目用到了 Jsoup具体版本见 POM),另外还用到了 JDK中的线程池、阻塞队列(生产-消费者模…