首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将表创建为SELECT -使用内存引擎(在RAM内存中)

问将表创建为SELECT -使用内存引擎(在RAM内存中)
EN

Stack Overflow用户
提问于 2013-11-22 19:58:28
回答 2查看 27.5K关注 0票数 20

我读到了使用MEMORY ENGINE (存储在ram中的表)的表。

  • 可以使用CREATE TABLE AS SELECT语法,但是创建的表对内存表的大小有限制吗?可以创建一个物理1.5 GB表的副本的内存表?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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;

票数 27
EN

Stack Overflow用户

发布于 2014-11-08 06:05:14

您还可以通过以下方式创建临时表:

代码语言:javascript
复制
CREATE TEMPORARY TABLE IF NOT EXISTS tmp ENGINE=MEMORY AS (
SELECT 'abc' As tomcat, 'def' As apache);

或者这样:

代码语言:javascript
复制
CREATE TEMPORARY TABLE IF NOT EXISTS tmp ENGINE=MEMORY AS (
SELECT tomcat, apache From servers);

注意,第一个选项将创建两个列,作为varchar(3),而第二个选项将从原始表中导入任何列信息,包括它们的注释。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20144394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档