【问题标题】:Which is better? - USE DATABASE Vs DATABASE.TABLE_NAME in MySQL哪个更好? - 在 MySQL 中使用 DATABASE 与 DATABASE.TABLE_NAME
【发布时间】:2014-12-18 08:08:32
【问题描述】:

我在Multiple Shared Database environment(MySQL) 工作,我需要经常在多个数据库之间切换。

假设我的主数据库是MainDB

每个用户都有共享数据库,比如ShardDB1, ShardDB2 ...

由于我使用的是JAVA Connection pooling,因此我必须在执行每个查询时获取要执行的连接,并在执行完毕后立即将其释放到池中。

我尝试了以下方法,但没有发现任何性能差异或任何问题。

  1. 每次我想使用 SharedDB 时,我都会像 USE ShardDB1; 一样切换到 SharedDB 并在执行查询后再次切换回 MainDB,例如 USE MainDB;

  2. "Select * from "+ ShardDB1 +".TABLE_NAME where ....";这样写查询

2nd method is easier 供我在代码中使用。但在我将它投入生产之前,我想知道使用第二种方法是否有任何问题(尤其是性能)。我用谷歌搜索了它,但找不到任何东西。请对此有所了解。

【问题讨论】:

    标签: java mysql database


    【解决方案1】:

    性能没有真正的区别。在第一种情况下,服务器编辑请求,添加前缀本身。在第二个中,前缀是一个 java 变量。如果存在差异,则大约为 0.1 毫秒或更短。

    USE DATABASE 语句是开发人员编写请求的快捷方式。 在处理多个数据库时,最好不要使用此语句,而是在表前加上 db 名称。然后,如果您忘记在请求中指定名称,您不必冒险更改错误的数据库。

    【讨论】:

      猜你喜欢
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 2011-04-09
      • 2011-01-10
      • 2014-04-02
      • 2013-11-28
      • 2010-10-11
      相关资源
      最近更新 更多