0

ユーザーテーブルに 4 つのフィールドがあります

reset_password_code CHAR(128)
reset_password_expiry DATETIME

email_verification_code CHAR(128)
email_verification_expiry DATETIME

データベースのパフォーマンスが低下しますか? それを行うためのベストプラクティスはありますか? 私は空間ではなく時間について心配しています。

アップデート:

CHAR を VARCHAR に変更すると、スペースの問題は解決しますか?

4

1 に答える 1

1

理論的には、フィールドが増えると、スペースが増え、アクセスする時間が増えます。ただし、データベース設計について話している場合、これは問題になりません。

実際には、フィールドの数ではなく、レコードの数を気にする必要があります。これは、レコード数が増えると、検索時間も増加するためです。

これが、適切なフィールドを主キーとして設定する理由です。検索が異なるフィールドで行われる場合、多くの主キーを持つことができないことに気付くかもしれません。これは、インデックスを使用する場合です。つまり、検索に使用するフィールドに基づいてインデックスを作成する必要があります。これが効率化の方法です。

過去に、2000 万を超えるレコードがあるMySQL + PHPアプリケーションを構築しました。そして、検索を使用して約 10,000 レコードを取得するのに 10 秒もかかりませんでした。

秘密はフィールドの数ではなく、インデックス/主キーの作成方法にあります。

したがって、あなたが持っている4つのフィールドについて心配する必要はありません:)

于 2012-07-04T07:16:30.620 に答える