いくつかのログ ファイルに基づいていくつかのレポートを作成しようとしています (最大 5,000 万レコードで、今後 10 倍になる可能性があります)。これをテーブルにロードし、必要な変更を加えます (複製の削除など)テーブルは、製品ごとのタイプ別および日別のリクエスト数を保持することになっているため、リクエスト数を表すカウント列を使用して、これを個別の製品に切り詰めようとしています
ログ データを含む元のテーブルは次のとおりです。
*************************** 1. row ***************************
Table: cdnlog2
Create Table: CREATE TABLE `cdnlog2` (
`serial` int(32) DEFAULT NULL,
`ip` varchar(100) DEFAULT NULL,
`country` varchar(100) DEFAULT NULL,
`productid` int(11) DEFAULT NULL,
`type` varchar(100) DEFAULT NULL,
`query_date` date DEFAULT NULL,
KEY `aaa` (`country`),
KEY `ccc` (`productid`),
KEY `type` (`type`),
KEY `date_index` (`query_date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
宛先テーブル:
*************************** 1. row ***************************
Table: cdnlogfinal
Create Table: CREATE TABLE `cdnlogfinal` (
`country` varchar(100) DEFAULT NULL,
`productid` int(11) DEFAULT NULL,
`type` varchar(100) DEFAULT NULL,
`request_count` int(11) DEFAULT NULL,
`query_date` date DEFAULT NULL,
KEY `aaa` (`country`),
KEY `ccc` (`productid`),
KEY `type` (`type`),
KEY `date_index` (`query_date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
個別の行とその数だけでグループ化された値にレコードの数を削減しようとしています (同じ製品が同じ日に複数回選択される可能性があるため、ログには重複が含まれる可能性があります)。ただし、セカンダリ テーブルへの挿入は、「ディスク上の tmp テーブルにコピーしています」というステータスで数時間実行されています - 十分なスペースを確保するために一時ディレクトリを変更しました - 何かポインタはありますか?
前もって感謝します