如果不同用户有多个数据库访问,会有问题吗?

Posted

技术标签:

【中文标题】如果不同用户有多个数据库访问,会有问题吗?【英文标题】:Will there be issue if there is multiple database access by different users? 【发布时间】:2016-09-09 05:00:04 【问题描述】:

我目前正在开发一个php网站,由于该网站将被很多人使用,我只想知道如果这些不同的用户同时访问多个数据库是否会出现问题,如果是这样如何去做。提前致谢。

【问题讨论】:

这取决于您的数据库、配置、设置和更多因素。请尝试使用更多信息来扩展您的问题。 请使用更具描述性的问题标题。 您实际上是在询问计算机是如何工作的。这是一个相当广泛的话题。 【参考方案1】:

简单回答:只要您的代码设计良好,就不会。

细化:在 mysql 服务器中,数据库可以非常高效地工作并处理大量任务。这些任务包括不断查询不同数据库中的表,其中包括SELECTdata、UPDATEdata、INSERTrows、DELETErows等语句。

但是,有些极端情况可能会发生。想象一下,如果有两个人第一次在您的网站上注册,并且他们都想注册用户名 Awesomesauce程序员经常编写算法,首先检查当前用户名是否存在,如果不存在,INSERTusers 表中的新行中包含新用户名和所有其他相关信息(密码、地址等)。如果两个用户同时单击“注册”按钮,并且您的代码设计不当,则可能会使用相同的用户名创建两行,在这种情况下您会遇到问题。

幸运的是,MySQL 的特性可以防止这种极端情况。 UNIQUE INDEX 可以在 username 列上实现,从而强制数据库不接受在确切时间尝试注册名称的两个用户之一。

总而言之,如果你的代码设计得很好,你应该没有问题。

【讨论】:

【参考方案2】:

这完全取决于流量、您网站的数据库有多大以及许多其他因素。

但对于初学者来说,我想说真的没什么好担心的。

我认为你应该使用 MySQL,因为你刚刚开始使用 php,但是你几乎可以使用 PHP 的 PDO http://php.net/manual/en/book.pdo.php 来使用任何你想要的东西。有很多在线支持mysql和php的,所以我会从那里开始。

【讨论】:

【参考方案3】:

我建议在同一个数据库中创建多个表,而不是在多个数据库中。虽然即使有多个db同时访问也不会有任何问题。

请参阅以下链接以了解其完成方式:- How do you connect to multiple MySQL databases on a single webpage?

【讨论】:

【参考方案4】:

虽然您的问题过于宽泛,但如果您想要水平扩展(添加更多服务器),请查看 PHP/NoSQL 解决方案。否则,PHP/MySQL 之类的就可以了。

在这里为你读一点:Difference between scaling horizontally and vertically for databases

【讨论】:

以上是关于如果不同用户有多个数据库访问,会有问题吗?的主要内容,如果未能解决你的问题,请参考以下文章

这是允许多个用户同时访问数据库的好方法吗?

我应该在多个表中包含 user_id 吗?

oracle为啥创建实例,为何通过实例来访问数据,这样有啥优点吗

实体框架:使用多个架构还是两个不同的数据库?

如果跨应用程序域访问类中的静态数据会怎样?

我们可以为单个帐户创建多个 mws 访问权限和密钥吗?