小编lig*_*e65的帖子

在MySQL中,最有效的查询设计是什么,用于连接大型表,连接谓词之间有多对多的关系?

在我们的应用中,我们收集有关汽车发动机性能的数据 - 基本上是基于发动机类型,运行它的车辆和发动机设计的发动机性能的源数据.目前,新行插入的基础是发动机开关期; 我们根据引擎状态从活动状态到非活动状态的变化监控性能变量,反之亦然.相关engineState表格如下所示:

+---------+-----------+---------------+---------------------+---------------------+-----------------+
| vehicle | engine    | engine_state  | state_start_time    | state_end_time      | engine_variable |
+---------+-----------+---------------+---------------------+---------------------+-----------------+
| 080025  | E01       | active        | 2008-01-24 16:19:15 | 2008-01-24 16:24:45 |             720 | 
| 080028  | E02       | inactive      | 2008-01-24 16:19:25 | 2008-01-24 16:22:17 |             304 |
+---------+-----------+---------------+---------------------+---------------------+-----------------+ 
Run Code Online (Sandbox Code Playgroud)

对于特定分析,我们希望基于行的分钟粒度来分析表内容,而不是基于活动/非活动引擎状态的当前基础.为此,我们考虑创建一个简单的productionMinute表,在我们分析的时间段内每分钟都有一行,productionMinuteengineEvent在每个表的日期时间列上连接和表.因此,如果我们的分析时间是从2009年12月1日到2010年2月28日,我们将创建一个包含129,600行的新表,每三天一个月的每一分钟一行.productionMinute表格的前几行:

+---------------------+ 
| production_minute   |
+---------------------+
| 2009-12-01 00:00    |
| 2009-12-01 00:01    |
| 2009-12-01 00:02    |     
| 2009-12-01 …
Run Code Online (Sandbox Code Playgroud)

mysql sql performance join

9
推荐指数
1
解决办法
2275
查看次数

标签 统计

join ×1

mysql ×1

performance ×1

sql ×1