我需要一些MySQL数据库设计的帮助。 MySQL数据库每年应处理大约1.5亿条记录。我想使用myisam引擎。
| car_brand | tablename | Address |
|-----------|-----------|-------------|
| BMW | bmw_table | the address |
| ... | ... | ... |
表:bmw_table(105120 * 30 +车型=每年超过320万条记录)
| car_model | timestamp_usage | quality_usage | usage | timestamp_fuel_consumed | quality_usage |fuel_consumed | timestamp_fuel_consumed | quality_kilometer | kilometer | timestamp_revenue | quality_revenue | revenue | ... |
|-------------|---------------------|---------------|-------|-------------------------|----------------|--------------|-------------------------|-------------------|-----------|---------------------|-----------------|---------|-----|
| Z4 | 2015-12-12 12:12:12 | good | 5% | 2015-12-12 12:12:12 | good | 10.6 | 2015-12-12 12:11:54 | good | 120 | null | null | null | ... |
| Z4 | 2015-12-12 12:17:12 | good | 6% | 2015-12-12 12:17:12 | good | 12.6 | 2015-12-12 12:16:54 | good | 125 | null | null | null | ... |
| brand_value | null |null | null | null | null | null | null | null | null | 2015-12-12 12:17:12 | good | 1000 | ... |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
和其他品牌表..
修改:添加了查询和质量
注意:我假设表bmw_table有一个名为car_brand的额外列,而表名为simple_table而不是bmw_table,以降低复杂性。
SELECT car_brand, sum(revenue), avg(usage)
FROM simple_table
WHERE timestamp_usage>=2015-10-01 00:00:00 AND timestamp_usage>=2015-10-31 23:59:59
GROUP BY car_brand;
SELECT timestamp_usage,usage,revenue,fuel_consumed,kilometer
FROM simple_table
WHERE timestamp_usage>=2015-10-01 00:00:00 AND timestamp_usage>=2015-10-31 23:59:59;
我从OPC服务器收集数据,因此qualtiy字段包含以下值之一:
bad
badConfigurationError
badNotConnected
badDeviceFailure
badSensorFailure
badLastKnownValue
badCommFailure
badOutOfService
badWaitingForInitialData
uncertain
uncertainLastUsableValue
uncertainSensorNotAccurate
uncertainEUExceeded
uncertainSubNormal
good
goodLocalOverride
提前致谢!
Droider
答案 0 :(得分:2)
不每个品牌都有一个单独的表格。没有优势,只有不必要的复杂性。每个型号也不是1个表。通常,如果两个表看起来相同,则应将数据组合到一个表中。在您的示例中,该一个表将brand
和model
作为列。
索引是您表现的朋友。让我们看一下您将要执行的查询,以便我们讨论最佳索引。
如果数据质量不佳,你会怎么做?只需显示" good"或者"不好"?