Sai*_*nan 5 mysql performance space-efficiency
我一直在研究最佳实践是对尝试在网站上注册的用户进行电子邮件验证。(我正在运行 laravel 安装,这发生在 php 中,尽管这更多是一个理论问题)。我有几个问题想请教大家意见!
我已经研究这个问题有一段时间了,我的目标是使我的系统完美可扩展并且尽可能高效。欢迎任何信息/讨论。
如果用户点击了激活码,然后你删除了它,那么他会忘记他点击过它并再次点击它,当代码无法识别时,他可能会感到困惑。我会让激活码保持有效直到过期,这至少与您的电子邮件中应包含的说明相符。
从 MySQL 表(假设为 InnoDB)中删除数据会将空间标记为准备删除。后来,后台线程真正删除了它,并且该空间可以重新使用。但与任何碎片化过程一样,对于未来的大多数行来说,空间可能太窄。最终,如果您运行 OPTIMIZE TABLE,表将被复制,这自然会对其进行碎片整理。
是的,生成与电子邮件关联的唯一密钥。让它在相当短的时间内失效,也许1小时。
我会使用UUID()。用户应该单击您的应用程序发送给他们的电子邮件中的链接——用户不必输入令牌。所以,如果时间长的话,也不会造成负担。UUID() 是生成强唯一随机令牌的好方法。