LoginSignup
0
0

【初心者】データベースのテーブル分けについて考察してみる part2

Last updated at Posted at 2024-05-29

今回もデータベースの考察です。
今回は下記のテーブルについて考えてみようと思います。
image1.png

lessons という授業用のテーブルですが
授業 1 回分を 1 レコードとします。

title には授業のタイトル
content には授業内容
file には動画や PDF 等のファイル

が入るとします。

今回はこのテーブルについて
考察してみたいと思います。


lessons テーブルが巨大かもしれない件

さて、この lessons テーブルは
全ての lesson が入る事が推測されます。

40MB の動画が 300 個登録されたとしたら
10GB の容量になります。

レコード数は少ないかもしれませんが
10GB のテーブルを検索する事を考えると
検索に時間がかかることが推測されます。

算数A の lesson だけを
表示したい画面があるとすれば
lesson 一覧を表示したいだけなのに
検索だけで時間がかかるかもしれません。

ファイルは必要ないのに
算数A の画面がなかなか表示されないのは
ナンセンスな気がしますよね?

そこで今回の例では file カラムは
file テーブルに分けると良いと思います。

動画ファイルA の id を 1 とすれば
lesson テーブルの file カラムは
1 を登録するだけで済みます。

個別の lesson を開かない限り
動作が早くなるのです。

個別の lesson ページの
動作が早くなることはありませんが
他のページが早くなるならば
分けた甲斐があると思います。


今回のまとめ

今回の例ではカラム数が多いテーブルで
・1 カラムだけ容量が大きいカラムが存在する
・そのカラムは特定の画面でしか使わない
・他のカラムだけで完結する画面がある(算数 A の lesson 一覧画面等)

という限定的なシチュエーションでは
カラムを分けると良さそうという結論でした。

カラム数が多いテーブルに
1 カラムだけ大きなカラムがあるならば
分けた方が検索速度が上がるのではないか?
という個人的な考えでした。

皆さんはどう思いましたか?
分ける派と分けない派が
いらっしゃるのではないでしょうか?

今回の例で皆さんがどちら派か
是非コメント頂けると嬉しいです。

閲覧ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0