0

私は SQL を初めて使用し、マルチプレイヤー ゲームのアカウント情報を格納するテーブルに取り組んでいます。大量のデータを保存する最も効率的な方法は何だろうと思っています。

これらの 3 つのコラムについては、私はすでにそれを理解していると思います。

username: VARCHAR(20)
password: VARBINARY(16) for MD5-Hashes
email: VARCHAR(70)

これについてあなたはどう思いますか?

それに加えて、より柔軟なデータ (セーブデータ) がたくさんありますが、これは私には予測できません。このデータを TEXT 型のフィールドに XML データとして保存するのは賢明でしょうか? または、(PHP を使用して) 保存するより良い方法はありますか?

ありがとう。ロブ

4

3 に答える 3

0

xmlをテキストフィールドに保存しないでください。別のデータベースエンジンを使用します。これにより、任意の非構造化データを保存できます。(nosqlを検索)

于 2011-07-21T05:13:27.343 に答える
0

いくつかのアドバイス:

  • 可能な限り最小の型を使用することが多い(単なる int ではなく tinyint など)
  • 固定長の文字列がある場合は、varchar ではなく char を使用します (たとえば、md5 の場合)。

特定のケースに関連するメモ:

  • 70文字ってメールアドレスとしてはちょっと短い気がする
  • ゲーム データの保存 > おそらく TEXT または BLOB フィールドを使用します。
于 2011-07-21T05:02:42.240 に答える
0

ドメイン名も含めると、メールアドレスの長さが短すぎることに同意します。Gmail の最大の長さに従うことをお勧めします。

また、ゲーム データをファイルとして保存し、そのパスをデータベースに保存することをお勧めします。テーブルに大きなデータを保持することは、常に悪い考えです。

これは特に、クラスター化されたインデックスが使用され、行の内容がインデックスに格納される mySQL innoDB ストレージ エンジンでインデックスを使用する場合に当てはまります。インデックスは非常に大きくなり、非効率的になります。

また、SELECT/INSERT/UPDATE を含むクエリも非常に遅くなり、特に後者の 2.

于 2011-07-21T05:23:25.243 に答える