gpt4 book ai didi

mysql - 将最新的 InnoDB_Rows_Inserted 变量值与旧值进行比较

转载 作者:行者123 更新时间:2023-11-29 20:41:37 25 4
gpt4 key购买 nike

这是我编写的查询:

SELECT variable_name,0 - variable_value 
FROM information_schema.global_status
WHERE variable_name IN ('Innodb_rows_inserted','Innodb_rows_updated'
,'Innodb_rows_deleted','Innodb_rows_read'
,'Innodb_data_reads','Innodb_data_read'
, 'Innodb_data_writes','Innodb_data_written');
+----------------------+--------------------+
| variable_name | 0 - variable_value |
+----------------------+--------------------+
| INNODB_DATA_READ | -6672384 |
| INNODB_DATA_READS | -422 |
| INNODB_DATA_WRITES | -22 |
| INNODB_DATA_WRITTEN | -333312 |
| INNODB_ROWS_DELETED | 0 |
| INNODB_ROWS_INSERTED | -2 |
| INNODB_ROWS_READ | -17 |
| INNODB_ROWS_UPDATED | 0 |
+----------------------+--------------------+
8 rows in set (0.00 sec)

现在,我想要 INNODB_ROWS_INSERTED 最近更新的值与其最后一个值之间的差异。

例如 - 在上面的输出中,INNODb_ROWS_INSERTED 的值为 2。如果我再进行一次插入并重新运行此查询,更新后的值将为 3。现在我想显示差异,即新表或文件中的 1。

谢谢

最佳答案

谨防Observer effect .

A 计划:将原始值放入临时表中,但确保它不是 InnoDB 表。测试后,JOIN information_schema 查询来获取差异。

B 计划:前后使用SHOW GLOBAL STATUS LIKE 'Innodb%';解析输出(例如,PHP);获取差异。看来SHOW受观察者效应影响的可能性较小。但编码比较笨拙。

计划 C(不适用于那些 STATUS 值):FLUSH STATUS某些清零 状态值。在测试之前执行此操作,然后使用 SHOW SESSION STATUS LIKE '...'。 (注意使用 SESSION。)这对于 LIKE 'Handler%' 非常有效,我发现它对于深入了解查询的工作方式以及查询的快慢很有用。

关于mysql - 将最新的 InnoDB_Rows_Inserted 变量值与旧值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38619117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com