Mysql中的临时表使用方法讲解


  当工作在十分大的表上时,你可能间或需求运行众多 查问 获得一个大量数据的小的子集,不是对整个表运行这些 查问,而是让MySQL每次找出所需的少数记录,将记录 取舍到一个暂时表可能更快些, 而后多这些表运行 查问 。

   缔造暂时表很方便,给 畸形的CREATE TABLE语句外加TEMPORARY 要害字:

CREATE TEMPORARY TABLE tmp_table (

name VARCHAR(10) NOT NULL,

value INTEGER NOT NULL

)

  暂时表将在你衔接MySQL期间存在 。当你断开时,MySQL将自动删除表并 开释所用的空间 。固然你 可以在 依旧衔接的时候删除表并 开释空间 。

DROP TABLE tmp_table

  假如在你 缔造名为tmp_table暂时表时名为tmp_table的表在数据库中已经存在,暂时表将有必要屏蔽( 潜藏)非暂时表tmp_table 。

  假如你申明暂时表是一个HEAP表,MySQL也同意你指定在内存中 缔造它:

 CREATE TEMPORARY TABLE tmp_table (

name VARCHAR(10) NOT NULL,

value INTEGER NOT NULL

) TYPE = HEAP

 

  由于HEAP表存储在内存中,你对它运行的 查问可能比磁盘上的暂时表快些 。但是,HEAP表与普通的表有些不同,且有 本身的 制约 。详见MySQL参考手册 。

  正如前面的 提议,你应该测试暂时表看看它们是不是真的比对大量数据库运行 查问快 。假如数据很好地索引,暂时表可能丝毫不快 。