質問内容
単純な疑問で恐縮なのですが、SQL(SELECT)が重くなるのは「レコード数」なのでしょうか。それとも「データザイズ」なのでしょうか。
質問背景
zekterraさんの質問であったり、他でも見かける中で「nnn万件のデータのSELECTに時間がかかります」という内容があるかと思います。
しかし、対象テーブルが「1カラム」の場合と「10カラム」の場合では違うのでは?という単純な疑問が沸いてきました。
例えば、
「1カラム」しか保持してなく、1レコード辺りのデータサイズも小さい場合、SELECT文のレスポンスも速い印象で、
「10カラム」を保持しており、1レコード辺りのデータサイズも約10倍ある場合、SELECT文のレスポンスも併せて遅くなりそうな印象です。
しかし、
どこを調べても「レコード数」に関するチューニングの記述しか見当たらず、「データサイズ」に関する記述が見つかりません。
これは、
「『レコード数が原因であり、データサイズは関係ないのである』という事であり、あえて言及していないのか・・・?」という純粋な疑問が沸いてきました。
そこで、
SQLやデータベースに詳しい方にご教示いただきたいと思い、投稿させていただいた次第です。
補足情報
・PostgreSQLを採用しており、テーブルAに約400万レコード格納されている
・テーブルAには、暗号化されたデータA(JSON)を格納していて、取得時に復号する
・データAは、処理Aや処理Bなど複数処理に用いられるが、処理Aについては暗号化しなくていい情報しか用いられていない
→「暗号化すべきものとそうでないものを区別してテーブルを分ければ、レコード辺りのデータサイズも削減されて、処理Aが軽くなるのでは?」という仮説を立ててみた
(他人のシステムなのであまり手出しできないが、そもそもJSONを加工・正規化もせずに使っているので、説得材料として加工・正規化をさせたい意図。仮説が誤ってたら他を考える予定。)
回答6件
あなたの回答
tips
プレビュー