目前,我有一張桌子,它的填充速度非常快。 我有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