MySQL系列(二)SQL性能下降的原因/SQL执行顺序

我们在开发过程中,时常会有由于数据量不断地增加,接口相应时间过长的问题的出现,这里面有一部分原因就是因为我们的SQL的性能问题,下面我们来一起讨论下是什么造成了SQL的性能下降的。


SQL性能下降的原因

1.查询语句写的烂

这个原因是由于开发人员,在开发过程中,根本没有考虑SQL性能,纯粹是为了完成任务而工作,或者说是一种不负责任的开发行为。例如 无论表中字段是否需要,总是习惯 select *、或是看到明明创建了索引,但是由于错误的使用索引导致索引失效(后面文章将会详细进行介绍)等。出现以上原因,还是希望我们从自身找问题,一是对自己的工作负责,二是 利用业余时间需要不断地充实自己。

2.关联查询太多join

这种情况的出现一般会由于设计的缺陷或是不合理或是不得已的需求问题影响。

3.服务器调优及各个参数的设置

缓冲和线程数等。这里不做过多讲解。

总结:
1.冗余数据的处理
适当的冗余数据可以提高系统的整体查询性能;关系型数据库的三范式:
第一范式是对关系模式的基本要求,不满足第一范式的数据库不是关系数据库,是指数据库表的每一列都是不可分割的基本数据项,同一列中不可能有多个值;
第二范式要求数据库表中的每个实例或行必须可以被唯一的区分;
第三范式要求一个数据库表中不包含已在其他表中已包含非主关键字信息。(不允许有冗余数据)。
但是数据库的三范式在复杂的系统中在一定程度上是会被违背的。

2.大表拆小表,有大数据的列拆成小表
(1) 在一个数据库中,一般不会设计属性过多的表;
(2)在一个数据库中,一般不会超过500/1000万数据的表(拆表,按逻辑或按业务进行拆分)


SQL执行顺序

在这里插入图片描述


发布了12 篇原创文章 · 获赞 0 · 访问量 342

猜你喜欢

转载自blog.csdn.net/fd135/article/details/104303163
今日推荐