【问题标题】:Count daily rows by tables in MySQL在 MySQL 中按表计算每日行数
【发布时间】:2016-02-22 17:56:35
【问题描述】:

我有一个包含约 200 个表的数据库,我想对其进行审核以确保表不会变得太大。

我知道我可以通过以下方式轻松了解我想要的许多表属性(以 MB 为单位的大小、行、行长度、数据长度等):

SHOW TABLE STATUS FROM myDatabaseName;

但它缺少我想要的一条关键信息:在给定的时间段内每个表添加了多少行?

如果有帮助,我的每条记录都包含一个格式匹配的datestamp 列。

编辑:本质上,我想要类似的东西:

 SELECT COUNT(*) 
 FROM * 
 WHERE datestamp BETWEEN [begindate] AND [enddate] 
 GROUP BY tablename

【问题讨论】:

    标签: mysql database-administration


    【解决方案1】:

    以下内容应该可以获取在给定时间段内为给定表格输入的行数:

    select count(*) from [tablename] where datestamp between [begindate] and [enddate]
    

    【讨论】:

    • 我正在寻找的是能够为 every 表运行此功能,例如:SELECT COUNT(*) FROM * WHERE datestamp BETWEEN [begindate] AND [enddate] GROUP BY tablename
    【解决方案2】:

    经过一番研究,这在 MySQL 中似乎是不可能的,因为它需要大量的表读取(毕竟,用户之间的行数可能不同)。

    相反,我获取了写入表的所有作业的事务日志,然后我将解析它们。有点hacky,但它有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多