mysql界面点哪个运行_MySQL性能调优(一)

性能监控

发现sql运行慢的时候,得知道具体哪里执行时间长。那得进行性能监控

show profile查询剖析工具,可以哪个步骤执行时间较长

5578990ee88b123c43f40e2b58715d31.png

可以看到select 的这条语句实际的执行时间是 0.00013475

然后 show profile; 可以查看具体的运行时间。

713597ab20102755738d49410a2c27f0.png

这个SHOW PROFILESHOW PROFILES语句显示指示在当前会话期间执行的语句的资源使用情况的分析信息。

话不多说,先来连接linux上的mysql。 这里sql主机地址就填虚拟机的ip地址。root是mysql的用户名,密码就填mysql的密码。然后测试连接,然后连接。我从我windows上的5.5版本的mysql中导出了一个数据库,然后导入到这个5.7版本中,懒得建表弄数据了。

c855e4be710332ceb7b0914e7f2b78ac.png

8586cc6bb0253f7f331f51c8166fcb72.png

只是用这个图形化界面导个数据。

865bfdaca452f56670402bd57c43c26c.png

然后set profiling=1;

然后依次执行这几个表的select *

然后可以使用show profiles; 看执行过的这些sql都用了多长时间。

50b25d9d9b654c67bc7c462f609e7291.png

可以选择id来看具体哪条sql使用的时间,show profile for query 2; 这个2代表上图的query_id

d1e3027db1797cac4ee4ab023c82b396.png

具体还有很多命令,MySQL官网如下

13.7.7.30 SHOW PROFILE Statement​dev.mysql.com

747258b3180641e75158d8ce4d164c38.png

bcce6e607e37b529252463737241c172.png

Use the Performance Schema instead 使用Performance Schema 代替

这个东西熟悉么?这不就是么? 另外Performance Schema也是一中存储引擎和Memory一样,不支持持久化的,而innodb和myisam都支持持久化。

5d84eaffaf2ef4b5d0964db0c67e5857.png

怎么使用呢? 默认是开启的。

7b0336be2988ec84847554e60f336c29.png

这个有什么用呢? show profile可以监控 cpu sql io block等,而performance schame可以监控的更细致,比如sql没问题,就是慢,就可以用performance schame 看一下哪些线程在做什么事,占用多少时间。performance schame使用非常广,不占用篇幅来细说了。


使用show processlist;查看连接的线程个数,观察是否有大量线程处于不正常的状态或者其他不正常的特征。

abb2a9e863e201b2066d995f768fb0e6.png


时间类型优化:

datetime:

占用8个字节,与时区无关。

数据库底层时区配置,对datetime无效

可保存到毫秒

可保存时间范围大

不要使用字符串存储日期类型,占用空间大,损失日期类型函数的便捷性

timestamp:

占用4个字节

时间范围1970-01-01 - 2038-01-19

精确到秒,采用整形存储,依赖数据库设置的时区,自动更新timestamp列的值

date:

占用字节数比使用字符串,datetime,int存储更少,使用date类型只需要3个字节

使用date类型还可以利用日期时间函数进行日期之间的计算

date类型用于保存1000-01-01到9999-12-31之间的日期。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值