哪个更好? - 在MySQL中使用DATABASE与DATABASE.TABLE_NAME

时间:2014-12-18 08:08:32

标签: java mysql database

我在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 ....";

  3. 之类的查询

    2nd method is easier让我在代码中使用。但在我将它推向生产之前,我想知道在使用第二种方法时是否存在任何问题(特别是性能)。我用Google搜索,但无法找到。请详细说明一下。

1 个答案:

答案 0 :(得分:4)

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

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