mysql临时表创建问题
2012-07-18 10:22
204 查看
当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后多这些表运行查询。
创建临时表很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:
临时表将在你连接MySQL期间存在。当你断开时,MySQL将自动删除表并释放所用的空间。当然你可以在仍然连接的时候删除表并释放空间。
DROP TABLE tmp_table
如果在你创建名为tmp_table临时表时名为tmp_table的表在数据库中已经存在,临时表将有必要屏蔽(隐藏)非临时表tmp_table。
如果你声明临时表是一个HEAP表,MySQL也允许你指定在内存中创建它:
因为HEAP表存储在内存中,你对它运行的查询可能比磁盘上的临时表快些。然而,HEAP表与一般的表有些不同,且有自身的限制。详见MySQL参考手册。
正如前面的建议,你应该测试临时表看看它们是否真的比对大量数据库运行查询快。如果数据很好地索引,临时表可能一点不快。
创建临时表很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:
Code代码如下: |
CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, value INTEGER NOT NULL ) |
DROP TABLE tmp_table
如果在你创建名为tmp_table临时表时名为tmp_table的表在数据库中已经存在,临时表将有必要屏蔽(隐藏)非临时表tmp_table。
如果你声明临时表是一个HEAP表,MySQL也允许你指定在内存中创建它:
Code代码如下: |
CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, value INTEGER NOT NULL ) TYPE = HEAP |
正如前面的建议,你应该测试临时表看看它们是否真的比对大量数据库运行查询快。如果数据很好地索引,临时表可能一点不快。
相关文章推荐
- Mysql创建临时表时的lost connection 问题
- MYSQL 更新时间自动同步与创建时间默认值共存问题
- MySQL创建的表不能编辑的问题
- Oracle的存储过程中创建临时表报权限不足问题
- mysql创建外键时可能遇到的问题
- mysql之创建用户问题
- mysql 临时表和内存表创建 查询 删除以及注意事项
- MySQL:在命令行下创建 MySQL 存储过程有关问题
- 在用 MySQL Workbench (MySQL5.6) 创建 外键 时遇到的问题
- 创建了远程账号仍然无法远程mysql的问题
- 在Linux下给mysql创建用户并分配权限及问题解决方案
- mysql 创建存储过程权限问题
- mysql创建索引以及进程过程中出现的问题
- Mysql创建表问题
- 解决mysql-server yum安装包找不到的问题以及解决mysql创建用户问题
- MySql中创建外键遇到的问题
- mysql 无法创建表的问题
- MySQL学习(二)——SQL语句创建删除修改以及中文乱码问题
- MySQL 5.1 无法创建、修改存储过程的解决(简单问题)
- 针对MySQL5.5版本用%创建用户后在本地(localhost)无法登录的问题