注意:MySQL内存表可以改善某些临时业务查询,例如会话共享和某些类似于缓存的数据。
“内存表”是顾名思义在内存中创建的表,是真的吗?实际上,MySQL内存表的表结构是在磁盘上创建的,并且数据存储在内存中,因此,当MySQL启动时,该表存在,并且数据也存在。如果用户有权查看该表,则在所有会话中,您都可以访问该内存表中的数据;当MySQL重新启动时,数据消失并且结构仍然存在。
创建内存表:
CREATE TABLE test( id int(10), num int(10) ) ENGINE=MEMORY DEFAULT CHARSET=utf8;
检查创建是否成功:
show tables;
使用内存表后,如果要释放占用的内存,有两种方法:
-- 删除数据 delete from test;
或
-- 清空表 truncate table test;
或再次
-- 删除表 drop table test;
对于我们常用的功能,内存具有以下特征:
对于可变长度类型(例如varchar),内存表使用固定长度进行存储;内存表可以具有非唯一键;内存表不能包含BLOB或TEXT列;内存表支持AUTO_INCREMENT列;内存表支持插入延迟以启用读取优先级;像其他非内存表一样,所有客户端都直接共享非临时内存表;
在使用内存表时,我们需要注意以下方面:
服务器内存足够大;我们创建的内存表与MySQL内部临时表不同:内存表的数据存储在内存中,而内部临时表(由我们的查询语句生成)则在适当的时间存储在内存中临时表变得非常大,MySQL会自动将其转换为存储在磁盘上的表,但是我们创建的内存表将不会自动转换。当我们分别从内存表中删除时,将不会回收该内存;仅当整个表被删除时,内存才会被回收;在MySQL主从服务器上,可以复制内存表
参考:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-350765-1.html
这件可能就这样结束了
以前可以搜到多个系统更新到9