MySQL数据库优化

admin 2023-10-15 613 阅读 0评论

文章导读目录

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

二、SQL优化

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

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

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

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

三、配置优化

四、碎片整理优化

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

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

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

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

  • 1NF:列不能再拆分

  • 2NF:所有的属性都依赖于主键

  • 3NF:所有的属性都直接依赖于主键(消除传递依赖)

更多内容可参看:MySQL 主备切换MySQL读写分离架构

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

二、SQL优化

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

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

传送门:【面试必问系列】之MySQL慢查询是怎么回事

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

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

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

传送门:当面试官让你聊聊索引优化?索引失效?

通过慢日志查询可以知道哪些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开启

640.png
640.png
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及资源情况

640.png

640.png

三、配置优化

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

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

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

喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 613人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表