1

データベース内のほぼすべてのテーブルに対して2つの日付を保存する必要があります。たとえば、tbl_clients tbl_users tbl_employers tbl_position tbl_paymentstbl_quiztbl_email_reminderなどです。

ほとんどの場合、「date_created」と「date_modified」を保存しますが、いくつかの追加の日付を保存することもあります。

パフォーマンスの観点からMySQLデータベースに日付を保存するための最良のアプローチは何でしょうか(後で多くの顧客がいる可能性があるサイトはおそらく500,000以上)

オプション1:各テーブルに日付の2つの列を追加します。

オプション2 :日付専用のテーブル「tbl_dates 」を作成します。

「 report.php 」などの特定のページに日付を表​​示するだけでよいので、オプション2の方が速く機能すると思っていました。

また、「tbl_dates」を遅くしすぎずに最大数の列をいくつ配置する必要があります。

4

1 に答える 1

0

一般的なケース (行の作成と行の変更のタイムスタンプ) では、関連するものと同じテーブルに配置します。そうしないと、必要な結果結合によって、単純なアプローチよりもクエリが遅くなることがわかります。

いずれにせよ、多くのテーブルが作成できる「一般的なテーブル」を作成する習慣を身に付けたくはありません。JOINこれは、理想的には各リレーションシップに対して外部キーを作成するためですが、いくつかの行が属している場合、これは機能しません。tbl_clients、いくつかからtbl_users...(など)。

確かに、MySQL エンジンは、使用しているキーによっては外部キーを使用できない場合がありますが、(少なくとも私にとっては) 要点は立っています。

于 2012-12-10T22:11:20.570 に答える