假设我们有带时间戳记的表t,t填充了数据超时。 假设数据以行之间的间隔为几秒(不是恒定的间隔)插入n行的突发中,然后在相对较长的时间内未插入,这是合理的。我正在寻找那个n。任何建议?计算平均突发大小
林使用MySQL所以MySQL的代码示例将是巨大的,但又称算法的建议使用或任何能好,以及...
假设我们有带时间戳记的表t,t填充了数据超时。 假设数据以行之间的间隔为几秒(不是恒定的间隔)插入n行的突发中,然后在相对较长的时间内未插入,这是合理的。我正在寻找那个n。任何建议?计算平均突发大小
林使用MySQL所以MySQL的代码示例将是巨大的,但又称算法的建议使用或任何能好,以及...
如果我正确理解你的问题,这听起来像一个问题,我之前也必须解决。 (虽然它是为我伪装的)。
MySQL没有办法有效地查看上一个/下一个记录之间的区别。我通过在表格中引入一个链表来解决这个问题。
这样做的代价是所有的插入和删除操作都必须通过一个事务安全的过程来保持(双)链接列表的完整。我选择了一对存储过程,工作非常好。
结果数据集是这样的:
+------------------------------------+
| id | insert_ts | prev_id | next_id |
+------------------------------------+
| 1 | 12:32 | NULL | 2 |
| 2 | 12:34 | 1 | 3 |
| 3 | 12:40 | 2 | NULL |
+------------------------------------+
(与外键本身prev_id
和next_id
唯一索引)
然后查询任何记录和谁在它之前的差距很简单:
SELECT
my.id,
my.insert_ts - prev.insert_ts
FROM table AS my
LEFT JOIN table AS prev ON (my.prev_id = prev.id)
确保您使用的日期/时间戳您使用适当的时间比较功能,而不是ma如我上面所做的那样,主题为“减号”。
为了保证性能 - 这是一个适中的金融系统的高吞吐量表,数据的一致性是坚实的,吞吐量永远不会成为瓶颈。我可以为您提供一些关于如何实现插入/删除例程的提示。
请与我们分享表格和数据,并提供给我们预期的结果..您将得到更多,也许更好的答案 –
请参阅:[为什么我应该提供一个MCVE在我看来是一个非常简单的SQL查询?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query) – Strawberry