0

我的用户表中有四个字段

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 回答