MySQL中的临时表与普通表的主要区别在于:
- 存储位置不同
临时表存储在内存中,而普通表存储在硬盘上。 - 生命周期不同
临时表的生命周期仅仅存在于会话或当前连接中。会话结束后自动删除。
而普通表从创建开始,一直到手动删除为止。 - 数据隔离性不同
临时表中的数据只能被创建它的会话看到。而普通表的数据可以被所有会话看到。 - 性能不同
由于存储在内存中,临时表的性能要远超过同样数据量的硬盘普通表。 - 截断速度不同
临时表极速Truncate,实时释放storage空间。而普通表需要许可才能Truncate。 - 管理不同
无法对临时表执行BACKUP和RESTORE操作。而普通表可以备份还原。 - 结构创建不同
临时表可以不指定存储引擎。而普通表需要指定。
总的来说,二者主要区别在于:
- 存储位置(内存/硬盘)
- 生命周期(会话/永久)
- 数据隔离性(只有会话可见/所有会话可见)
- 性能(较高/较低)
- 截断速度(更快/较慢)
- 管理(无法备份/可以备份)
- 结构(不用指定存储引擎/需要指定存储引擎)