我正在努力优化我的表格
我有以下信息:
id|Equipment|Date|Info1|info2|info3|info4|(9 columns total)
每天我都会得到一份报告,我几乎每台设备都会在数据库中插入实际日期,但是它们可能不是每天都插入或者按正确的日期顺序插入,所以最高ID并不总是最新的
在3个月内,我有近100万行,所以我的查询检查2000台设备的最新信息现在大约需要1分钟(使用i5笔记本电脑托管数据库进行开发),所以在几个月后我可能会去在我等的时候吃午饭......
减少查询的负担我正在考虑为每台设备使用一张表用于最新的信息,另一张用于保存历史记录(如果我需要检查)。
当我向主表添加信息时,我正在考虑使用触发器,这将清空最新的记录表并再次为每个设备添加最新记录(来自我的研究,我不知道是否可能)
现在我正在使用的查询是:
VIEW `metersbycontract` AS
SELECT
`equipments`.`Serial` AS `serial`,
`equipments`.`modelname` AS `model`,
`contracts`.`number` AS `contract`,
`contracts`.`customername` AS `customer`,
`meters`.`Date` AS `date`,
`meters`.`BlackPrints` AS `Black`,
`meters`.`ColourPrints` AS `Colour`,
`meters`.`TotalPrints` AS `Total`,
`meters`.`PageCount` AS `Pages`
FROM
((`equipments`
LEFT JOIN `contracts` ON ((`equipments`.`Serial` = `contracts`.`serial`)))
LEFT JOIN `meters` ON ((`contracts`.`serial` = `meters`.`Serial`)))
ORDER BY `meters`.`Date` DESC
这给了我所有记录的日期,我必须按顺序对它们进行分组以保持最新状态(我希望尽可能避免获取所有信息并接受任何想法)
我附上了我现有桌子的图像(仍在施工中) 我在视图上使用“设备”表,但现在可以忽略它,因为它没有向最终数据添加任何新信息