MySQL性能优化实战

开课吧开课吧锤锤2021-06-02 18:29

点赞
有用
分享分享

    对于许多Java从业者来说,MySQL的性能优化一直是大难题。无论是跳槽面试,还是日常的业务开发,你总会遇到这样那样的数据库性能瓶颈。这时候除了常见的分库分表外,还有哪些方式可以优雅的帮助我们进行数据库的性能优化呢。

Java

    6月1日的《HelloWorld公开课》,开课吧Java进阶课教学教研负责人,灭霸詹手把手教你如何进行MySQL的性能优化,让你不再为数据库性能瓶颈发愁。

    MySQL性能优化思路

    相信每个从事Java开发的工程师都能或多或少的说出几条数据库的优化方法,下面我们列举了集中常见的优化思路,相信其中一点有你熟悉的方法。

    首先需要使用【慢查询日志】功能,去获取所有查询时间比较长的SQL语句

    查看执行计划,查看有问题的SQL的执行计划

    针对查询慢的SQL语句进行优化

    使用【showprofile[s]】查看有问题的SQL的性能使用情况

    调整操作系统参数优化

    升级服务器硬件

    慢查询日志

    在日常开发中,我们经常遇到的一个问题是,虽然知道是MySQL性能瓶颈遇到了问题,但如何才能定位到具体是由于哪些原因导致的呢?幸好MySQL提供了慢查询日志。这个日志会记录所有执行时间超过long_query_time(默认是10s)的SQL及相关的信息。

动态

    我们可以通过下面代码临时开启或永久开启慢查询功能,slow_query_log意思是慢查询日志是否开启,slow_query_log_file指明了日志所在的位置。

//临时开启慢查询功能
set global slow_query_log = ON;
set global long_query_time = 1;

//永久开启慢查询功能
slow_query_log=ON
long_query_time=1

    查看执行计划

    开启了慢查询后,我就可以查看SQL的执行计划了,看看到底是哪里出现了问题,通过EXPLAIN命令,会输出如下结果。

mysql> explain select * from tuser where id = 2 \G
*************************** 1. row
***************************
id: 1
select_type: SIMPLE
table: tuser
partitions: NULL
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: const
rows: 1
filtered: 100.00
Extra: NULL
1 row in set, 1 warning (0.01 sec)

    有同学看到上面输出的命令行有点蒙,这些都是什么意思啊,不要着急,我们一个一个命令来看

    id:SELECT查询的标识符每个SELECT都会自动分配一个唯一的标识符

    select_type:SELECT查询的类型table:查询的是哪个表

    partitions:匹配的分区

    type:join类型

    possible_keys:此次查询中可能选用的索引

    key:此次查询中确切使用到的索引

    ref:哪个字段或常数与key一起被使用

    rows:显示此查询一共扫描了多少行.这个是一个估计值

    filtered:表示此查询条件所过滤的数据的百分比

    extra:额外的信息

    这些命令匹配不同的参数都会有不同的作用,如果想了解这些命令的详细内容,可以点击下面的链接观看这部分内容的回放呦,在课上,灭霸詹对这些命令都做出来了详细的解释

查看执行计划
 

 

点击图片免费领取课程哦!

Java

    讲师介绍

    李振东,开课吧Java进阶课教学教研负责人,前易购购网上商城CTO,前国美在线NPOP项目技术负责人。前酷派手机网上商城项目技术经理,前国家电网网上商城(一期项目4000万,团队100+人)B2B和B2B2C项目技术负责人&架构师,前国内知名培训机构金牌项目讲师。

    《Hello,World公开课》是由开课吧推出的面向广大开发工程师的免费加餐课,集结业内名师大咖,聚焦热门技术和实战解决方案,以专业知识分享交流为桥梁,链接正在创造世界的一群科技主力们,向初心致敬,为技术发烧。无论你是初入职场的应届生,还是准备升职加薪的职场精英,相信这里都有你需要的养料。

    以上就是开课吧广场小编为大家整理发布的“MySQL性能优化实战”一文,更多动态相关内容尽在开课吧广场动态频道!

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享