创建临时表用CREATE TEMPORARY TABLE。临时表不用你删除,在结束数据库操作时临时表自动删除。
解决方案 »
- 杯具了,latin1编码的字段写入中文怎么恢复?
- 怎么解决数据库冗余?
- 请教:把dos导出的文件名做为变量,传给mysql。
- mysql_autocommit 这个在哪个头文件里面啊,怎么我这没有啊>??
- MYSQL FK INDEX
- pgadmin III应该属于postgresql的服务器界面程序还是客户端应用程序?
- 难!!!!!从.xls导入到SQL数据库,为什么有的表提示:空值无法插入!!!!????
- 多个表关联,使用左连接。一直迷惑这个概念,求高手帮我。
- 大牛们:关于mysql数据事务处理,感谢帮忙
- mysql存储过程 嵌套循环读写操作 没有作用问题
- 在线等待!!!MYSQL4.04-bate版的配置问题(送分)。。。。
- 查询效率问题,高手请进
由于表建在内存中,速度很快。
不知道各位对这种方法有什么意见?
也就是说,
如果一个连接建立了一个名为TEMP的临时表,
其它的连接是不能看到这个名为TEMP的临时表的,
其它的连接也同样可以再建立一个名为TEMP的临时表,
各表互不影响,
它一个连接关闭后,它所建的临时表将会自动删除而HEAP类型表正如你所述:HEAP表格使用一个(hashed)索引并且存储在内存中。这使得他们会更快,但是如果MySQL崩溃,你将失去所有存储的数据。HEAP作为临时表很可用!
CREATE TABLE test TYPE=HEAP SELECT ip,SUM(downloads) as down
FROM log_table GROUP BY ip;
SELECT COUNT(ip),AVG(down) FROM test;
DROP TABLE test;当你使用HEAP表时,这里是你应该考虑的一些事情: 你应该总是在CREATE语句中指定MAX_ROWS以保证你使用所有的内存。
索引将只能与与=和<=>一起使用(但是很快)。
HEAP表使用一个固定的记录长度格式。
HEAP不支持BLOB/TEXT列。
HEAP不支持AUTO_INCREMENT列。
HEAP不支持在一个NULL列上的索引。
你可以在一个HEAP表中有非唯一键(杂凑表一般不这样)。
HEAP表格在所有的客户之间被共享(就象任何其他的表)。
HEAP表的数据以小块分配。表是100%动态的(在插入时),无需溢出区和额外的键空间。删除的行放入一个链接表并且当你把新数据插入到表时,它将被再次使用。
为了释放内存,你应该执行DELETE FROM heap_table或DROP TABLE heap_table。
为了保证你不会偶然做些愚蠢的事情,你不能创建比max_heap_table_size大的HEAP表。
有由于heap类型的表,需要手工清除,如果程序有异常的话,会占用内存.
可不可以把heap 和临时表结合起来呢?