2个数据库,1个?

时间:2010-08-18 21:31:41

标签: mysql database-connection rdbms

我有一个包含所有国家和城市的数据库,我想使用ajax来使用它来表示国家城市字段中的表单,我的数据库中有很多表与网站的内部工作方式有关。如果我将它放在不同的数据库(只是这个世界地图数据库)中,这样可以吗?我宁愿把它放在一个不同的数据库中,所以它更有条理,我真的不会在连接到主数据库的相同页面上连接它。基本上是一个小的PHP页面,将建议与json的字符串。我想知道单独的数据库是否意味着共享数据库池并降低性能!??

我应该在geobytes.com上添加这些新表和sql脚本,我不知道它们有多好,或者我是否会在路径上使用它们!我希望通过最新的ip表列表找到更好的东西!像ip2location

5 个答案:

答案 0 :(得分:1)

避免过早优化。如果你试图将事物分开(出于架构原因),那就没关系了。如果你想提高性能,那么你怎么知道这甚至可以提高性能呢?您将需要额外数据文件的开销,可能需要在数据库服务器上承担更多管理多个数据库的开销。

充其量可能是性能洗涤。

答案 1 :(得分:1)

我不太明白你为什么要这样做。它使事情变得复杂:

  1. 管理2个数据库 - 例如备份和恢复。
  2. 管理2个连接配置+连接池。
  3. 未来潜在的参照完整性(例如,在某个阶段,您是否有与城市/国家相关的实体?)
  4. 我会把这些表暂时留在原处。如果/当它们导致性能问题时将它们拔出。

答案 2 :(得分:1)

这没有什么特别的错误。我不知道它的是否必要 - 如果它只是一两个表,我无法理解为什么它的性能或安全性都很重要,无论哪种方式。如果您担心脚本访问这些附加表,您可以为json脚本使用不同的数据库用户名,并将其设置为只读,这样如果它以某种方式被利用,它就无法改变您的其他表。

老实说,我认为最好的办法是暂时将其保存在一个数据库中,但要编写足够灵活的脚本,以便在需要时将其指向一个单独的数据库。

答案 3 :(得分:0)

如果你需要扩展,你的应用程序已经将它们拆分,所以它会更容易。如果第二个数据库成为性能问题,您可以将其放在第二台机器上。

如果您有许多核心数据库服务器,那么在大多数应用程序中将它们放在一台计算机上应该不会有问题。

答案 4 :(得分:0)

听起来这个地理参考数据是您自己的,而您的网站还有很多其他“内部工作”。

您的网站是来自第三方的CMS还是类似的 - Drupal / Joomla /等?

如果是这样,请将您自己的数据保存在那里。如果您计划将此地理数据公开给Web服务,它就会独立存在。

如果此站点是您自己的站点,请考虑该数据库中的其他表与地理参考表之间的标准化程度。