2016-07-22 1 views
0

私はユーザに関連付けられた通知を保存する必要があるデータベーススキーマを構築しています。私は各ユーザーごとに別々のテーブルを作成するか、MySQLデータベースに1つの大きなテーブルを用意する必要があります。 どちらが時間とメモリの点でより効率的です。1つの大きなテーブルまたはmysqlデータベース実装の多数の小さなテーブル

は単一のテーブルについては、通知テーブル のスキーマは

Notification(NotificationID,UserId,Content,seen,..) 

であり、複数のテーブルのスキーマは、ユーザ申し込み一度ユーザ毎に作成される

Notification__userId(NotificationID,Content,seen..) 

あります。

+0

テーブルを1つ好む – Jens

+0

テーブルを1つ使用します。あなたがFacebookのように多くのユーザーを持っている場合、あなたは異なった考え方をするかもしれません – SIDU

答えて

2

単一のテーブルを使用して、正しいインデックスを設定します。

複数のテーブルを使用すると、データ処理がより複雑になり、アプリケーション(テーブルの作成、使用するテーブルの決定、奇妙なクエリビルディングなど)によって、より多くの個別の障害点が発生します。

単一のテーブルを使用すると脅威になることがありますが、クエリの実行時間は遅くなりますが、インデックスが正しく設定されている場合はデータベースのスケーリング機能が過小評価されます。

あなたは、スケーラビリティに関するいくつかの情報については、このサイトをチェックアウトするとインデックスについて学びたいと思うかもしれません:http://use-the-index-luke.com/sql/testing-scalability/data-volume

1

Uを使用すると、すべてのユーザー通知を保存しても、意志するのに役立ちますユーザーIDを使用してストア通知に一つのテーブルを使用する必要がありますデータを簡単に取得できるようにする

関連する問題