2017-11-07 20 views
-1

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; 

クエリの結果に対してこの操作を実行するにはどうすればよいですか?

答えて

1

基本的な数学とブール式が役立ちます。

SELECT SUM(action_date >= '2017-11-5 00:00:00')/COUNT(*) AS factor 
FROM mytable; 

次に、あなたは(あなたがテーブル全体のサイズを取得)2番目のクエリの結果に掛けるために、このクエリの結果を使用します。

+0

私は1つのクエリですべてを行うことに集中していましたが、私はこのアプローチについては考えていませんでした –

関連する問題