현재 하나의 테이블이 있으며 매우 빠르게 채워집니다. 50 개의 장치가 있습니다. 30 초마다 각 장치에서 데이터를 수집합니다. 따라서 10,000 개의 장치를 추가하면 매월 876,000,000 개의 레코드가 생성됩니다. 여기 데이터베이스 디자인 - 구조화 방법
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
장기 실행 쿼리는 어떻게 생깁니 까? –
Darius, 현재 쿼리를 수정하려고합니다. http://stackoverflow.com/questions/15367719 – Andrew