我想对我要从MySQL数据库中的特定表中删除的记录大小进行初步评估。基本上这个想法是得到这个表:
SELECT * FROM mytable WHERE action_date >= '2017-11-5 00:00:00'
然后执行该结果大小的评估(以Mb为单位)。我已经做了类似的事情,但对于整个表格:
SELECT ROUND( ((data_length + index_length) / 1024 / 1024), 2)
FROM information_schema.TABLES
WHERE information_schema.TABLES.table_schema = 'myDb' and TABLE_NAME = 'mytable'
LIMIT 0 , 30;
您知道我如何对查询结果执行该操作吗?
答案 0 :(得分:1)
一些基本数学和布尔表达式有帮助。
SELECT SUM(action_date >= '2017-11-5 00:00:00') / COUNT(*) AS factor
FROM mytable;
然后使用此查询的结果与第二个查询的结果相乘(您获得整个表的大小)。