失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MySQL数据库优化看这一篇就够了(最全干货篇)

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

时间:2021-12-29 16:55:12

相关推荐

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

文章目录

一、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 重建表

如果觉得《MySQL数据库优化看这一篇就够了(最全干货篇)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。