我有一個大表(數百萬行),我需要根據存在的某個列值以及未發生指定的「超時」的位置。我認爲一種方法是在整個表格中找到發生這些「超時」差距的地方。如何在給定列在指定時間間隔內沒有特定值的時間排序表中找到間隙
示例表:
+----------------+------+ | time | base | +----------------+------+ | 1245184797.064 | a | | 1245184802.020 | a | | 1245184807.103 | b | | 1245184812.089 | b | | 1245184816.831 | b | | 1245184821.856 | a | | 1245184821.856 | a | | 1245184855.903 | a | | 1245184855.903 | b | | 1245184858.362 | b | | 1245184858.362 | b | | 1245184860.360 | a | | 1245184860.360 | a | | 1245184862.174 | a | | 1245184862.174 | b | | 1245185001.480 | b | | 1245185417.556 | a | | 1245185417.844 | a | | 1245185419.960 | b | | 1245185420.181 | b | +----------------+------+
鑑於這一集,我將如何快速找到未發生的幾秒鐘內給定基數=一個表中的點(比如說5)。
爲了解決這個問題,我的目標是在沒有超時的情況下一致地找到base = HAS發生的記錄跨度。
+1 Works,刪除'WHERE t1.base ='a''並用''替換't2.base ='a''' t2.base = t1.base',使它搜索所有的基本差距 – Andomar
是的。在任何情況下都使用t2.base = t1.base。 –
同樣有趣的是,時間與上述類似,對於具有3000行的基礎,時間爲6秒。您的建議索引也未被優化器選中。還是太慢了。 –