MySQLでインデックスを貼っていない日付フィールド(created_atなど)を高速検索する方法


テーブルに行の作成日時フィールドを作成することがありますが、インデックスを貼っていない場合、日付検索に非常に時間がかかります。(Ruby on Railsなど)

このような場合、二分探索を行うことで高速に検索できます。
(日付に限らず、Primary Keyなどインデックスを貼ってある項目と同じ順序の項目で使えます)

MySQLの場合、以下のようにbsearch_create_at プロシージャを作成、利用できます。

https://paiza.io/projects/Lx9YQRynsffK38B9SU3vSg
(ブラウザ上で実行できます。)