目前,我有一张桌子,它的填充速度非常快。 我有50个设备。我每隔30秒从每台设备收集数据。因此,在添加10,000个设备之后,他们每个月会产生8.76亿条记录 - 这是很多!数据库设计 - 如何构造
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 +记录)
我需要重新考虑并重新实现数据库结构。目前我正在考虑要么
- 每个单元
- 各单位每月
,你有什么建议创建新表创建新表?
单位=设备,对吧?我不会建议为每个设备创建一个单独的表。您的索引是否可以解决您必须运行的查询? – Melanie 2013-03-12 16:29:15
长时间运行的查询是什么样的? – 2013-03-12 17:04:59
Darius,我目前也试图修复查询:http://stackoverflow.com/questions/15367719 – Andrew 2013-03-12 17:19:45