mysql中`use my_db`和`my_db.my_table`有什么区别?

时间:2017-04-05 02:48:54

标签: mysql

我们在一个实例中有很多数据库。

我们的查询语言是:

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

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

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

它们之间有什么不同?

我们应该使用哪一个?

1 个答案:

答案 0 :(得分:0)

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

  • 如果您坚持使用单个数据库,那么您可能不希望使用数据库前缀。 USE database允许您免除前缀。

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

我不知道MySQL在应用USE database语句时做了多少工作,但我想这在整体方案中并不是很重要。在正常情况下,您正在使用单个数据库,因此发出USE语句一次应该是它的结束。

当然,如果你经常在两者之间切换,特别是如果你要加入来自不同数据库的表,那么你应该在表格前加上。