0

我是 SQL 新手,我正在处理一个存储多人游戏帐户信息的表。我想知道存储大量数据的最有效方法是什么。

对于这三个专栏,我想,我已经想通了:

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

你怎么看待这件事?

除此之外,还会有很多更灵活的数据(游戏存档数据),我真的无法预测。将此数据作为 XML 数据保存在 TEXT 类型的字段中是否明智?还是有更好的方法来保存它(使用 PHP)?

谢谢。抢

4

3 回答 3

0

一些建议:

  • 尽可能多地使用尽可能小的类型(比如 tinyint 而不仅仅是 int)
  • 如果您有一个固定长度的字符串,请使用 char,而不是 varchar(例如,对于您的 md5)

与您的具体情况更相关的说明:

  • 70 个字符对于电子邮件地址来说似乎有点短
  • 保存游戏数据 > 我可能会使用 TEXT 或 BLOB 字段。
于 2011-07-21T05:02:42.240 回答
0

不要将 xml 存储在文本字段中。使用不同的数据库引擎——一个允许您存储任意非结构化数据的数据库引擎。(查找nosql)

于 2011-07-21T05:13:27.343 回答
0

我同意当您同时包含域名时,电子邮件地址长度太短。您可能需要了解 Gmail 的最大长度。

此外,您最好将游戏数据保存为文件并将路径保存在数据库中。在表上拥有大量数据总是一个坏主意。

当您在 mySQL innoDB 存储引擎中使用索引时尤其如此,其中使用聚集索引并将行内容存储在索引中。该索引将变得非常大且效率低下。

此外,涉及 SELECT/INSERT/UPDATE 的查询也会变得非常慢,尤其是后者 2。

于 2011-07-21T05:23:25.243 回答