現在、私は1つのテーブルを持っており、それは非常に速く移入されています。私は50台のデバイスを持っています。30秒ごとに各デバイスからデータを収集します。したがって、10,000台のデバイスを追加すると、1か月あたり8億7600万件のレコードが生成されます。これは膨大な量です。
INSERT INTO unit_data
(`id`,`dt`,`id_unit`,`data1`,`data2`,
`ip`,`unique_id`,`loc_age`,`reason_code`,
`data3`,`data4`,`Odo`,`event_time_gmt_unix`,
`switches`,`on_off`,`data5`)
これが私の関係です
PRIMARY KEY (`id`),
UNIQUE KEY `id_unit_data_UNIQUE` `id`),
KEY `fk_gp2` (`id_unit`),
KEY `unit_dt_id` (`dt`,`id_unit`),
KEY `unit_id_dt` (`id_unit`,`dt`),
CONSTRAINT `fk_gp2` FOREIGN KEY (`id_unit`) REFERENCES `unit` (`id_unit`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1049392 DEFAULT CHARSET=utf8$$
非常に複雑なクエリとレポートに直面していますが、それらを実行すると、システムが応答せず、実行タイムアウトになります。(これは2mil以上のレコードです)
データベース構造を再考して再実装する必要があります。そして現在、私はどちらかについて考えています
- ユニットごとに新しいテーブルを作成します
- Create new table for each unit for each month
What would you suggest?