Docker、K8S、DevOps、微服务、云原生是这几年最火的技术名词,也是互联网的技术发展方向,.NET Core+MySQL的开源跨平台解决方案是.NET领域的不二之选!然而大多数开发者甚至架构师,都聚焦在.NET Core上,以至于在MySQL性能优化方面出现空白,会严重影响个人的发展和就业选择。下面给大家来篇干货长文,还请细看!

数据库调优

数据库性能调优是个技术活儿,说起来简单,就是加快数据库的访问速度,做起来挺难,需要考虑各种复因素:SQL语句、索引、数据库设计、表结构、系统配置、甚至硬件都需要关注,常见方式:

§  SQL和索引优化是最重要的,也是开发者关注最多。

§  从数据库设计时,就考虑到增删改查效率,适度冗余。

§  系统配置的优化,调整数据库相关参数配置。

§  硬件优化就是更多内存,更快的IO。

优化成本:硬件>系统配置>数据库表结构>SQL及索引

优化效果:硬件<系统配置<数据库表结构<SQL及索引

优化效果最好而且最廉价的应该就是SQL和索引了,也是开发者最应该关注的环节,下面来个实操案例分享。

Sql优化案例

SQL优化就是为了解决有问题的SQL,要么是SQL写的不恰当,要么就是无索引或者索引失效。想要对症下药,最重要的是找到问题,幸好我们有MySQL执行计划,能够看到SQL执行的全部细节!实例看图:

核心指标详解

一、type:

执行计划访问类型,SQL 查询优化中一个非常重要的指标,结果值从好到坏依次是:system > const > eq_ref > ref > range > index > ALL。

system 

最快:不进行磁盘读写

const:

主键或者 unique 上的等值的查询

eq_ref:

主键或者 unique 上的 join 查询,等值匹配,对于前表的每一行,后表只有一行命中

ref:

非唯一索引,等值匹配,可能多行命中

range:

索引上的范围扫描,例如:between、in、>、<

index:

索引上的全集扫描,例如:InnoDB 的 count

ALL:

全表扫描,最慢

二. possible_keys 

查询过程中有可能用到的索引。

三. key 

实际使用的索引,如果为 NULL ,则没有使用索引。

四. rows 

根据表统计信息或者索引选用情况,估算出找到所需的记录所需要读取的行数。

五. filtered 

表示返回结果的行数占需读取行数的百分比, filtered 值越大越好。

六.Extra 

非常非常重要的额外信息,会影响执行结果的

Using filesort:

对数据使用一个外部的文件内容进行了排序,而不是按照表内的索引进行排序读取。 

Using temporary:

使用临时表保存中间结果,常见于order by 或 group by。 

Using index:

表示 SQL 操作中使用了覆盖索引,避免了访问表的数据行 

Using index condition:

表示 SQL 操作命中了索引,但不是所有的列数据都在索引树上,还需要访问实际的行记录。 

Using where:

表示 SQL 操作使用了 where 过滤条件。


看懂执行计划,是开启高性能 SQL 语句的大门的第一步,此外还需要拥有扎实的理论基础和丰富的实践,二者缺一不可。在当下大数据量三高三V的时代,只有sql语句的优化,已经远远不够了,还需要能深入索引结构,数据库设计,结合硬件方能让你的程序业务性能永垂不朽。

三高:高并发,高可扩,高性能

三V:海量 Volume,多样Variety,实时Velocity

硬核集训

顺应新时代互联网三高三V需求,你必须来一波MySQL硬核集训!3天时间,从MySQL实战到精华建议,从执行计划到索引数据结构,输出一线互联网公司数据库架构方案。课程由资深DBA,硬核架构师Clay在线直播实操,全网首发,有直播无回看,扫码限时免费学习!

Day1

MySQL执行计划分析,望问诊切4步法,解决SQL性能疑难,10年DBA的32条精华建议。

Day2

探究MySQL多重索引本质,为不同场景适配索引的合适数据类型,从数据结构层深度优化。

Day3

三高三V背景下,搭建MySQL高性能架构,输出互联网级分布式数据库架构方案。

获取本文全套学习资料

扫码添加

领取人数较多,添加以下号码也可免费领取哦!

微信号:zhaoxihhhhh

添加助教小姐姐免费学习

课堂还有微软MVP当嘉宾哟,不可错过!

.Net5还有3个月就要正式发布了,届时.Net Framework将不再升级,.Net Core已是大势所趋,诸位.Neter务必得开始学习了。这里为大家整理了一组.Net Core相关的学习资料 ,2020年全新录制,同样免费分享给大家。

资料清单如下:

获取以上全套资料

扫码添加

限时0元

添加助教老师领取全套资料,限时领取,本号粉丝专享!课程还配备有专属答疑交流群,由MVP和多位架构师大佬在群里跟大家互动答疑,直接对话MVP!

微软MVP组建的.Net社区

你加入了吗?

微软MVP:Eleven组建

国内首屈一指的.Net活跃社区

完整配套的学习资料

最新最热的技术文章

社区内优质岗位直推

全部免费奉送给大家

优质内容持续更新中

戳以下文章立即获取

????????????

禁止外传!社区内部VIP干货资料自取

(课程视频+面试题+技术专刊+岗位内推)

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐