经常可以看到一些文章说,我们的数据库基本是读多写少,所以要做读写分离架构 。笨方法(不准确)查看自己项目内的所有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%';
文章插图
查询数据库的增删改查次数
如上图所示,解释如下:
【怎么判断你的MySQL到底是读多还是写多】Com_delete 代表删除次数
Com_delete_multi 代表批量删除次数
Com_insert 代表插入次数
Com_insert_select 代表select into的次数
Com_select 代表select次数
Com_update 代表更新操作次数
Com_update_multi 代表批量更新次数
读写比例计算公式读写比例=读次数/写次数
读写比例=
Com_select/(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命令 。
扩展知识SHOW GLOBAL STATUS可以查看的数据非常多(windows MySQL 5.7版本下,有354条之多),涵盖方方面面,可以自行探索一下,附图一张 。
文章插图
部分show status命令数据展示
推荐阅读
- 两只猫怎么分开喂食 两只猫一只不让另一只吃饭
- 孟加拉豹猫性格怎么样 孟加拉豹猫优点和缺点
- 如何更换猫砂种类 猫砂应该怎么处理
- 猫吃猫粮好吗 猫粮应该怎么喂养
- 泰迪纯不纯主要看哪里? 泰迪狗怎么看纯不纯
- 新鲜锁阳怎么处理好呢
- 怎么查医保卡余额?
- 草莓太红是不是用了色素 草莓颜色不均匀是怎么回事
- 火鹤花怎么养 火鹤花有毒吗
- 补品与茶的喝法,小青柑茶怎么喝法