2012-02-14 14 views
3

私はMySQLが初めてです。多くのデータベースを持つデータベースと、多くのデータベースを動的に作成するデータベース

私はMySQLを使用していくつかのWebサービスを作成していますが、データベースを使用する最良の方法は何か分かりません。

1つは、多くの項目を持ち、継続的に次の行のクエリを作成する1つのデータベースです。 もう1つは、dbデータベースを動的に作成することです。

データベースデータベースは、ユーザーごとにいくつかの質問で構成されており、質問の数は固定されていません。

+1

「データベース構造を動的にする」という意味は何ですか? –

+0

@SzilardBaranyありがとうございました:)私は私の書き込みを編集:)。 私の言うことは、各ユーザーの要求に従って1つのデータベースに動的にデータベースを作成することです。 –

+2

http://datacharmer.blogspot.com/2009/03/normalization-and-smoking.html – Mchl

答えて

1

データベースに新しいテーブルを動的に作成する方法は、well known antipatternです。

実際には、クエリで動的なテーブル名を処理する必要があるため、実際にはコード化が難しくなります。

第2に、おそらくもっと重要なことは、DBのパフォーマンスに非常に悪影響を与える可能性があるということです。どのストレージエンジンを使用するかによって、テーブルをクエリするたびに、MySQLは1(InnoDB)から3(MyISAM)までのファイルをディスク上に開く必要があります。これは、短時間に多くのテーブルを問い合わせる必要があるときに、ファイルシステムにひどい負荷をかけます。

一方、すべてのデータを1つのテーブルに格納すると、初めてクエリを実行するときにMySQLがメモリにロードしようとします。連続したすべての読み取りではディスクアクセスではなくメモリアクセスが使用され、物事はもっと速くなります。

関連する問題