2013-08-06 32 views
8

我对MySQL很新。我的问题可能是错误的,如果是的话请更正或解释。MySQL表中的堆表和临时表之间的区别?

我刚刚通过在Google上搜索定义来了解堆表和临时表。 它们之间的确切区别和两者的实时使用有什么区别?

按我的知识和我读:

堆表:表中存在的内存被称为HEAP表。在MySql中创建HEAP表时,用户需要将TYPE指定为HEAP。这些表现在更常被称为内存表。这些内存表从不具有“BLOB”或“TEXT”等数据类型的值。他们使用索引,使他们更快。

临时表:在某些情况下,临时表可能非常有用以保留临时数据。临时表是在当前客户端会话终止时它们将被删除。

回答

8

正如你所引用的,临时表只在会话期间有效,而堆表存在于内存中。 因此,如果您不重新启动数据库,堆表可以存在很长时间。

一旦会话断开,临时表将被删除。

临时表不在客户端之间共享,堆表共享。 因此,对于每个连接临时表都是唯一的,对于第二个连接,不存在另一个连接的临时表。

对于临时表,您需要特殊权限(创建临时表),而堆表只是另一个存储引擎。