2017-04-05 41 views
1

我们在一个实例中有很多数据库。mysql中使用my_db和my_db.my_table有什么区别?

我们的查询语言是:

use db1; select * from table1; 
use db2; select * from table2; 

但是,当我们改变这种风格,MySQL服务器的CPU负载下降了很多:

select * from db1.table1; 
select * from db2.table2; 

什么是他们之间有什么不同?

我们应该使用哪一个?

+0

老实说,我不认为它是相关的。并且不应该有任何区别 –

+0

@AlexandrKapustin我们也认为不应该有任何区别。也许我们应该用没有任何框架的纯代码来测试它。 – Dozer

回答

0

MySQL可以在单个查询中使用多个数据库。每个表都属于一个数据库。它的全名是:database.table

  • 如果你坚持单一数据库,那么你可能不想使用数据库前缀。 USE database允许您免去前缀。

  • 如果您同时使用多个数据库,那么您将永远不会进入正确的数据库。在租约期间,您需要以其他数据库表为前缀。

我不知道,当你申请的USE database声明MySQL的多少工作呢,但我想,这不是在事物的总体方案非常重要。在正常情况下,您正在使用单个数据库,因此一次发布USE语句应该是其结束。

当然,如果您不断在两者之间切换,特别是如果您要连接来自不同数据库的表格,则应该在表格的前面加上前缀。