Mysql - 最新记录和历史记录表

时间:2017-04-29 17:40:25

标签: mysql

大家好日子,

我正在努力优化我的表格

我有以下信息:

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 

这给了我所有记录的日期,我必须按顺序对它们进行分组以保持最新状态(我希望尽可能避免获取所有信息并接受任何想法)

我附上了我现有桌子的图像(仍在施工中) 我在视图上使用“设备”表,但现在可以忽略它,因为它没有向最终数据添加任何新信息

0 个答案:

没有答案