我正在编写一个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