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

数据库 MySQL
经常可以看到一些文章说,我们的数据库基本是读多写少,所以要做读写分离架构。我就很纳闷,他们是怎么判断出来数据库的读多写少的呢?

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

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

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

[[347020]]

笨方法(不准确)

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

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

正确方法(绝对准确)

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

  1. SHOW GLOBAL STATUS 
  2.  
  3. WHERE 
  4.  
  5. variable_name LIKE '%Com_insert%' 
  6.  
  7. OR variable_name LIKE '%Com_update%' 
  8.  
  9. OR variable_name LIKE '%Com_delete%' 
  10.  
  11. OR variable_name LIKE '%Com_select%'

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

查询数据库的增删改查次数

如上图所示,解释如下:

  1. Com_delete 代表删除次数 
  2.  
  3. Com_delete_multi 代表批量删除次数 
  4.  
  5. Com_insert 代表插入次数 
  6.  
  7. Com_insert_select 代表select into的次数 
  8.  
  9. Com_select 代表select次数 
  10.  
  11. Com_update 代表更新操作次数 
  12.  
  13. Com_update_multi 代表批量更新次数 

读写比例计算公式

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

读写比例=

  1. 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条之多),涵盖方方面面,可以自行探索一下,附图一张。

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

部分show status命令数据展示

 

 

 

责任编辑:张燕妮 来源: 今日头条
相关推荐

2019-05-28 13:50:27

MySQL幻读数据库

2021-08-02 09:01:05

MySQL 多版本并发数据库

2020-09-02 08:00:51

Java引用传递值传递

2024-03-15 08:06:58

MySQLJOIN命令

2015-04-21 09:20:40

SwfitObject—C

2018-09-26 14:17:00

编程语言JavaPython

2011-09-05 10:30:51

重构代码库业务模型

2017-08-09 08:43:02

公有云趋势声势

2018-10-09 15:26:19

JavaPython语言

2024-03-28 13:13:00

Htmx前端开发框架

2015-09-16 10:37:48

创业者业余创业者

2014-11-17 10:03:23

OpenStack

2017-03-16 14:48:21

CEOCTO创业

2020-12-28 08:18:55

安全代码线程

2021-04-21 13:48:22

MySQL优化Redis

2023-10-10 16:03:48

数字化信息化

2014-06-05 14:46:05

设计设计师

2022-08-18 23:13:25

零信任安全勒索软件

2020-08-31 19:19:27

TCPUDP视屏面试

2021-12-09 20:16:26

无线核心网传输
点赞
收藏

51CTO技术栈公众号