我正在編寫一個PHP函數,該函數將使用一個排序表根據我擁有的日期戳記來查找應用程序應該到哪個DB分片。根據事件日期查找日期範圍的算法
的碎片的配置是這樣的(僞代碼):第一列是我在尋找和第二是事件駐留在碎片事件的日期
pre-2008 -> shard1
2008-2009 -> shard2
2009_01-2009_06 -> shard3
2009_07 -> shard4
2009_08 -> shard5
2009_09 and up -> shard6
爲。你可以看到,我想要的配置非常靈活 - 它可以採用任何日期範圍,無論大小如何,都可以映射到碎片。
我正在尋找基於給定日期進行查找的最快方法。
例如,如果我的日期是2009-05-02,那麼我之後的分片是shard3。如果日期是2007-08-01,那麼它是shard1。
實際PHP代碼的獎勵積分,因爲應用程序使用PHP。
謝謝。
嗯,我不想整理和查找所有的時間,因爲這很貴。否則,我喜歡你的方法,因爲確實沒有漏洞。 – 2009-08-18 00:54:43
使用開始日期而不是結束日期將消除對'默認'的需要。 – 2009-08-18 03:23:51
使用開始日期將需要一個默認值來捕捉*第一個分片之前的任何內容*。 – 2009-08-18 04:01:56