估计mysql中行访问的分布

Dav*_*eau 6 mysql statistics

我试图了解一个相当大的表的“热数据”部分的大小,我想知道这是否可以直接在 mysql 中完成。我知道使用 percona 版本的 mysql,我可以访问诸如“每个表访问的行数”之类的数字,但我实际上需要每行这些数据(例如,id 为 1 的行被读取 200 次,行id 2 被读取 300 次,其中 id 是自动增量列)

Sta*_*hns 4

创建另一个表并使用 DML 触发器记录插入、更新和删除。

  1. 假设您有一个想要跟踪的表 A。
  2. 创建另一个表,例如 tbl_row_stats。
  3. 在表 A 上创建 DML 触发器以进行插入、更新和删除。即,只要表 A 发生这三个操作中的任何一个,就在 tbl_row_stats 中插入一行,其中包含表 A 的相应行 id 和发生的操作。
  4. 稍后,您可以使用 group by 子句进行选择,以查看每行中每个操作发生的次数。

为了跟踪选择,您必须将其添加到您的应用程序代码(或存储过程)中。即,每当从应用程序完成选择时,就必须对 tbl_row_stats 进行相应的插入。