推荐的SQL类型和长度

时间:2011-07-21 04:58:21

标签: php mysql sql performance space-efficiency

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

对于这三个专栏,我想,我已经弄明白了:

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

您如何看待这个?

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

感谢。 罗布

3 个答案:

答案 0 :(得分:0)

一些建议:

  • 尽可能使用尽可能小的类型(如tinyint而不仅仅是int)
  • 如果您有一个fixen-length字符串,请使用char,而不是varchar(例如,对于您的md5)

与您的具体案例更相关的说明:

  • 70个字符对于电子邮件地址来说似乎有点短暂
  • 保存游戏数据>我可能会使用TEXT或BLOB字段。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

同样涉及SELECT / INSERT / UPDATE的查询也会变得非常慢,尤其是后者2.