Actuellement, j'ai une table, et il se peuplé très rapidement. J'ai 50 appareils. Je rassemble les données de chaque appareil toutes les 30 secondes. Par conséquent, après avoir ajouté 10 000 appareils, ils généreraient 876 000 000 d'enregistrements par mois, ce qui est beaucoup!Base de données de conception - comment structurer
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`)
ici sont mes relations
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$$
Je suis confronté à des requêtes assez complexes et des rapports, et quand je les fais, notre système ne répond pas et frapper délai d'exécution. (c'est avec 2mil + enregistrements)
Je dois repenser et ré-implémenter la structure de base de données. Et actuellement, je pense à deux
- Créer une nouvelle table pour chaque unité
- Créer une nouvelle table pour chaque unité pour chaque mois
Que proposeriez-vous?
Unité = appareil, n'est-ce pas? Je ne suggérerais pas de créer une table séparée pour chaque appareil. Vos indices répondent-ils aux requêtes que vous devez exécuter? – Melanie
À quoi ressemble la requête de longue durée? –
Darius, je suis actuellement, essayant également de résoudre la question: http://stackoverflow.com/questions/15367719 – Andrew