我的用户表中有四个字段
reset_password_code CHAR(128)
reset_password_expiry DATETIME
email_verification_code CHAR(128)
email_verification_expiry DATETIME
会降低数据库性能吗?有没有最好的做法呢? 我并不担心空间而是时间。
更新
如果我将CHAR更改为VARCHAR,它会解决空间问题吗?
答案 0 :(得分:1)
理论上,更多的字段意味着更多的空间和更多的访问时间。但是,如果您正在谈论数据库设计,这不会成为一个问题。
实际上,您必须关注记录数量而不是字段数量。这是因为随着记录数量的增加,搜索时间也会增加。
这就是我们将合适的字段设置为主键的原因。如果您的搜索将在不同的字段上,您可能会发现您不能拥有许多主键。这是您使用索引时。也就是说,您应该根据您将用于搜索的字段创建索引。这就是效率的提升方式。
过去我已经构建了 MySQL + PHP 应用程序,其中有超过2000万条记录。使用搜索从其中获取大约10,000条记录只需不到10秒钟。
秘密不在于字段数,而在于您创建索引/主键的方式。
所以不要担心你有4个领域:)