DBのテーブルからレコードを抽出する際の処理で早いのはどっち

MySQL5.7のテーブルで1億くらいのレコードがあり、各レコードには、以下のように英数字1~10文字の乱数が格納されています。

▼example1

ID ran etc etc2…
1 5ty
2 a1b2c3d
3 n152t
4 d56eh

上記のテーブルから、乱数の桁数を取得してその桁数のレコードのみを抽出したいと考えています。

方法として以下2つを考えているのですが、どちらが処理速度的に早くなりますでしょうか。
また、処理速度と同義なのかもですが、DBへの負荷的にはどうでしょうか。

①SQLにて、LENGTH関数を使って桁数を求めてから、桁数を指定して抽出

②以下のように、事前にテーブルに桁数を追加しておいてから、SQLで桁数を指定して抽出

▼example2

ID keta ran etc etc2…
1 3 5ty
2 7 a1b2c3d
3 5 n152t
4 5 d56eh

ご教授いただければ幸いです。
よろしくお願い致します。

追記.
上記はまだ設計段階の為、実際にDBの作成は行なっていません。
現状、色々と調査した結果、指定桁数のレコード抽出方法として、上記2つの方法が導き出されたのですが、どちらが早いのかを調査してみても、回答を得る事ができなかった為の質問になります。

コメントを投稿

0 コメント