我读到了使用MEMORY ENGINE (存储在ram中的表)的表。
CREATE TABLE AS SELECT语法,但是创建的表对内存表的大小有限制吗?可以创建一个物理1.5 GB表的副本的内存表?发布于 2013-11-22 20:14:13
CREATE TABLE t AS SELECT ... -您需要在full statement中指定表列,示例:默认情况下,如果为16Mb,则CREATE TABLE t (col1 INT(11),col2 INT(11)) ENGINE=MEMORY AS SELECT * FROM table size of table,但可以使用max_heap_table_size server系统变量进行调整。但是请注意,这个限制是针对每个引擎的,而不是针对每个表的。也就是说,所有的memory表都将共享它。要限制单个表的大小,您需要对max_heap_table_size的会话值进行操作,例如
mysql>集合max_heap_table_size = 24*1024*1024;
发布于 2014-11-08 06:05:14
您还可以通过以下方式创建临时表:
CREATE TEMPORARY TABLE IF NOT EXISTS tmp ENGINE=MEMORY AS (
SELECT 'abc' As tomcat, 'def' As apache);或者这样:
CREATE TEMPORARY TABLE IF NOT EXISTS tmp ENGINE=MEMORY AS (
SELECT tomcat, apache From servers);注意,第一个选项将创建两个列,作为varchar(3),而第二个选项将从原始表中导入任何列信息,包括它们的注释。
https://stackoverflow.com/questions/20144394
复制相似问题