将用户的会话存储在与我的应用程序相同的数据库中是不是一个坏主意?我避免在 MongoHQ 购买第二个数据库。
4 回答
除了真正的高流量(绝对超过 100-200 个独立访问者:S,每小时尝试更多 100 万 - 200 万)站点之外,任何会话处理的数据库分离都可以算作微优化。这主要是由于实现单独的连接处理所需的工作,尤其是在 PHP 中。
不仅如此,PHP 驱动程序还为每个数据库(每个凭据)保存一个连接,这意味着您正在打开更多连接,并且由于连接需要很长时间来实例化,因此通常只为会话打开这样的新连接被认为是不合格的。
正如@Derick 正确提到的那样,实际上每个进程都会建立一次连接。这意味着在各种 fcgi 设置中,建立连接的过程并不是什么大问题。
尽管这不是什么大问题,但似乎仍然会因为不需要的东西而损失资源。
所以不,我不建议将会话处理分离到不同的数据库中,我实际上认为它性能不佳和微优化。
这不一定是个坏主意。如果不仅仅是为了确保您在一个数据库中拥有所有必要的东西,我大部分时间都在做同样的事情。
当您的会话数量不是很多时,想法还不错。例如,如果您一天有 100-200 位唯一身份访问者。
如果您的网站将变得流行,那么使用Redis可能是个好主意——它是一种开源、BSD 许可的高级键值存储。
我不这么认为,如果我没记错的话,WordPress 和 Joomla 可能也将密码保存在同一个数据库中,但保存在不同的表中。不过我不确定,看过一次代码,所以它可能需要更多的验证。但是您输入了一次数据库名称,因此很明显登录详细信息也在同一个数据库中。还有一些我现在不记得的其他代码做了同样的事情(学校的管理申请。忘记了它的名字)。所有开源代码。
因此,您可以确保您的数据库尽可能安全,并且不要以纯文本形式保存密码。请确保您为每个人使用独特的盐,只是为了让访问帐户变得更加困难。但我相信你知道这一点。
但我的结论是你可以,我向别人学习,并且看到其他更先进的人这样做。(开源代码)