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 コメント