很少使用mysql表中的字段会降低性能?

时间:2012-07-04 07:03:26

标签: mysql sql database-design

我的用户表中有四个字段

reset_password_code CHAR(128)
reset_password_expiry DATETIME

email_verification_code CHAR(128)
email_verification_expiry DATETIME

会降低数据库性能吗?有没有最好的做法呢? 我并不担心空间而是时间。

更新

如果我将CHAR更改为VARCHAR,它会解决空间问题吗?

1 个答案:

答案 0 :(得分:1)

理论上,更多的字段意味着更多的空间和更多的访问时间。但是,如果您正在谈论数据库设计,这不会成为一个问题。

实际上,您必须关注记录数量而不是字段数量。这是因为随着记录数量的增加,搜索时间也会增加。

这就是我们将合适的字段设置为主键的原因。如果您的搜索将在不同的字段上,您可能会发现您不能拥有许多主键。这是您使用索引时。也就是说,您应该根据您将用于搜索的字段创建索引。这就是效率的提升方式。

过去我已经构建了 MySQL + PHP 应用程序,其中有超过2000万条记录。使用搜索从其中获取大约10,000条记录只需不到10秒钟。

秘密不在于字段数,而在于您创建索引/主键的方式。

所以不要担心你有4个领域:)