MySQL中临时表与普通表的区别是什么?

MySQL中的临时表与普通表的主要区别在于:

  1. 存储位置不同
    临时表存储在内存中,而普通表存储在硬盘上。
  2. 生命周期不同
    临时表的生命周期仅仅存在于会话或当前连接中。会话结束后自动删除。
    而普通表从创建开始,一直到手动删除为止。
  3. 数据隔离性不同
    临时表中的数据只能被创建它的会话看到。而普通表的数据可以被所有会话看到。
  4. 性能不同
    由于存储在内存中,临时表的性能要远超过同样数据量的硬盘普通表。
  5. 截断速度不同
    临时表极速Truncate,实时释放storage空间。而普通表需要许可才能Truncate。
  6. 管理不同
    无法对临时表执行BACKUP和RESTORE操作。而普通表可以备份还原。
  7. 结构创建不同
    临时表可以不指定存储引擎。而普通表需要指定。

总的来说,二者主要区别在于:

  • 存储位置(内存/硬盘)
  • 生命周期(会话/永久)
  • 数据隔离性(只有会话可见/所有会话可见)
  • 性能(较高/较低)
  • 截断速度(更快/较慢)
  • 管理(无法备份/可以备份)
  • 结构(不用指定存储引擎/需要指定存储引擎)