码迷,mamicode.com
首页 > 数据库 > 详细

mysql 重新整理——性能下降的原因[四]

时间:2020-05-30 15:53:57      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:from   计数   index   rom   sel   sql   内存   src   怎么   

前言

什么是性能下降?

其实就是代码运行的环境变了,那么环境变化是什么?

比如cpu上升了,内存满了。有或者表中数量增加了,量变了。

其实这些是dba干的,但是呢,我们也需要去了解下,并且优化我们的code。

正文

简单介绍一个量大的情况,那么这个时候我们可能会建立索引,其实也不是量大去建立索引,而是量大且查询数据多,修改少。

在此举个栗子:

SELECT * from employees where first_name=‘Martial‘ 

我在一张30w的employees 中做查询。

查询出来的结果为:

受影响的行: 0
时间: 0.645s

通过查询发现索引只有主键:

show index from employees

技术图片

然后这是就想,如果要是在first_name中建立主键,那么是否能提升。

create INDEX idx_first_name on employees(first_name)

看下效果继续运行查询:

[SQL] SELECT * from employees where first_name=‘Martial‘ 

受影响的行: 0
时间: 0.216s

效果明显哈。

当然这很简单,现在复杂一点点,这样子。

怎么说呢,就是要有first_name 和 last_name 一起。

这时候就要创建复合索引。

create INDEX idx_first_name on employees(first_name,last_name )

在下就在次执行重复操作了。

同样我们可以看到我使用了*,这时候问题同样来了,你想想看,这个语句性能就不好了。

同样如果性能下降了,还要从语句下手。

在我进公司的时候,有一个专门搞数据库的部门,设计师设计数据库的时候,我们查一条要join好几张表,这就是设计问题,后来改了表结构,但是代价有多大可以自己想到。

最后性能不强的还有一些配置,如线程数量,这个和硬件有关,专业dba干了,我们也很难去搞定。

mysql 重新整理——性能下降的原因[四]

标签:from   计数   index   rom   sel   sql   内存   src   怎么   

原文地址:https://www.cnblogs.com/aoximin/p/12991970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!