怎么判断你的MySQL到底是读多还是写多

93 篇文章 3 订阅
8 篇文章 0 订阅

经常可以看到一些文章说,我们的数据库基本是读多写少,所以要做读写分离架构。

我就很纳闷,他们是怎么判断出来数据库的读多写少的呢?

其实更多的时候是人云亦云,拍脑门罢了~ 下面就告诉大家正确的姿势

笨方法(不准确)

查看自己项目内的所有sql语句,去做个统计,到底是select语句多,还是insert、update、delete语句多。

但是这依然不准确,因为就算select语句写的多,但是不代表执行的多,可能我们的项目存在大量的批量更新操作。

正确方法(绝对准确)

通过show status命令,可查看数据库的所有增删改查操作发生次数

SHOW GLOBAL STATUS

WHERE

variable_name LIKE '%Com_insert%'

OR variable_name LIKE '%Com_update%'

OR variable_name LIKE '%Com_delete%'

OR variable_name LIKE '%Com_select%';

在这里插入图片描述
如上图所示,解释如下:

Com_delete 代表删除次数

Com_delete_multi 代表批量删除次数

Com_insert 代表插入次数

Com_insert_select 代表select into的次数

Com_select 代表select次数

Com_update 代表更新操作次数

Com_update_multi 代表批量更新次数

读写比例计算公式

读写比例=读次数/写次数

读写比例=

Com_select/(Com_delete+Com_delete_multi+Com_insert+Com_insert_select+Com_update+Com_update_multi)*100%)

注意事项

如果使用SHOW STATUS或SHOW SESSION STATUS命令,代表只是查询当前会话的状态数据,如果要查看整个数据库的状况一定要记得加上GLOBAL参数,使用SHOW GLOBAL STATUS命令。

更多知识点可以加入我的Java学习园地,学习更多实用的技术。

扩展知识

SHOW GLOBAL STATUS可以查看的数据非常多(windows mysql 5.7版本下,有354条之多),涵盖方方面面,可以自行探索一下,附图一张。在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值