私は、自分が持っている日付スタンプに基づいて、アプリケーションがどのDBシャードに行くべきかを調べるPHP関数を書いています。イベントの日付に基づいて日付の範囲を調べるアルゴリズム
シャード構成は、この(擬似コード)のようなものです:最初の列は私が探していると、第二は、イベントが常駐シャードでイベントの日付である
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上にあるためです。
ありがとうございます。
これは高価なので、私はいつも並べ替えや検索をしたくありません。そうでなければ、私はあなたのアプローチが本当に穴がないのが好きです。 –
終了日の代わりに開始日を使用すると、 'DEFAULT'の必要性がなくなります。 –
開始日を使用するには、最初のシャードの前に*何かをキャッチするようにデフォルトが必要です。 –