mysql的界面怎么优化_Mysql优化

Mysql优化

1、为什么要对数据库进行优化?

1.1、避免出现页面访问错误

由于数据库连接timeout产生页面5xx的错误

由于慢查询造成页面无法加载

由于阻塞造成数据无法提交

1.2、增加数据库的稳定性

很多数据库问题都是由于低效的查询引起的

1.3、优化用户的体验

流畅页面的访问速度

良好的网站功能体验

2、数据库的优化可以从以下几个方面

2.1、sql以及索引

2.2、数据库表结构

2.3、系统配置

2.4、硬件

3、sql以及索引的优化

3.1、慢查询日志的常用sql

是否开启慢查询日志,有两个值off/on。

show VARIABLES like 'slow_query_log'

设置是否开启慢查询。

set global slow_query_log = on

查看日志文件的状态

show VARIABLES like '%log%'

设置开启未使用索引的查询

set GLOBAL log_queries_not_using_indexes=on

查看慢查询的设置时间,默认为10秒;设置慢查询的时间为1s

show VARIABLES like 'long_query_time'

set long_query_time = 1

3.2、慢查询日志的存储格式

执行该sql的时间

# Time:2018-09-17T07:18:02.492417Z

执行该条sql的主机信息

#User@Host: root[root] @ localhost [127.0.0.1] Id: 26该条sql的执行信息

# Query_time:0.002000 Lock_time: 0.000000 Rows_sent: 356 Rows_examined: 712该条sql的执行时间SET timestamp=1537168682;

该条sql的内容select * from t_user LIMIT 6;

3.3、使用explain来执行SQL的执行计划

expalain返回各列的含义:

1c2ca7f131cdad34e0219d5f33f6b470.png

table:显示这一行的数据是关于哪张表的

type:这是最重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、index和All。

possible_keys:显示可能应用在这张表中的索引。如果为NULL,没有可能的索引。

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

key_len:使用的索引的长度,在不损失精度的情况下,长度越短越好。

ref:显示索引的那一列被使用了,如果可能的话是一个常数。

rows:MYSQL认为必须检查的用来返回请求数据的行数。

Extra:Extra列需要注意的返回值。

Using filesort:看到这个的时候查询就需要优化了,

Using temporary:看到这个的时候查询就需要优化了。MYSQL需要创建一个临时表来存储结果,这通常发生在不同的列集进行ORDER BY上,而不是GROUP BY上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值