mysql-性能优化(sql执行计划explain)

影响mysql性能的因素:

1、是商业需求对性能的影响。  就是有时候可以去避免的,但是在设计的时候没有考虑到。如:统计发帖子总量,要求实时更新

 可以隔一段时间 更新一次,不实时更新,这样性能会提升很多。

2、存放图片和视频放到数据库中去还是放到磁盘上去?

正常如在orcle数据库中可以设置个大数据类型 就是block类型,。Orcle数据中表存放数据没限制。受制硬盘空间大小。

 mysql-性能优化(sql执行计划explain)

3、是否开启cache:如果数据更新的很频繁,开启cache意义就不大了。

 做性能测试 有个预热测试:应该考虑缓存,做性能测试之前先跑一段时间,做个预热,目的就是为了把磁盘中的缓存尽可能加满。

 mysql-性能优化(sql执行计划explain)

 4、表的设计、硬件(磁盘io) 都会对性能造成影响。

 mysql-性能优化(sql执行计划explain)

5、锁  有锁就会有阻塞。  任何数据库都有锁。

 死锁发生的时候数据库会自动去处理掉的。他会记录下来。

 6、mysql数据库query的优化

mysql-性能优化(sql执行计划explain)

 

开发同步给出sql的执行计划,就是自测的时候给出。

慢查询,如规定超过1s的都属于慢查询。

Sql非常容易出现问题

多索引。如果建了索引,只要插入一条数据,索引就要重新来。  所以建了索引会影响增删改的性能。Where 后面跟的字段,一般会建索引。

 从explan入手:这是一个执行计划的命令

连上MySQL。分析这个sql的执行计划,如下图。explain select * from t1;

mysql-性能优化(sql执行计划explain)

也可以下面这样,让他立着显示。这就是一个执行计划。

 mysql-性能优化(sql执行计划explain)

下面做一件事,建两张表,分别插入记录,通过id号做一下关联。然后看下他的执行计划。

 进入mysql 

create database db01;

drop database db01;

 

当发现一个sql有问题的时候,可以定一个优化目标,比如消耗资源多少在可接受范围之内等,目标定完后,就可以入手去分析了。比如说,从Explain入手

 mysql-性能优化(sql执行计划explain)

mysql-性能优化(sql执行计划explain)mysql-性能优化(sql执行计划explain)mysql-性能优化(sql执行计划explain)

ID越大越先被执行到。

 mysql-性能优化(sql执行计划explain)

上一篇:SQL优化


下一篇:4.sql优化