MySQL内存表与临时表

标签: mysql 内存 | 发表时间:2016-02-16 16:51 | 作者:huangqiqing123
出处:http://www.iteye.com

 

关于内存表

创建内存表SQL:

CREATE TABLE tmp_memory (i INT) ENGINE = MEMORY;

1、不同会话创建的临时表,所有会话是共享的。

1、data目录下只有tmp_memory.frm ,表结构放在磁盘上,数据放在内存中

2. mysql 重启或者关闭后内存表里的数据会丢失,但是表结构仍然存在

3. 可以创建索引,删除索引,支持唯一索引

4. 不影响主备,主库上插入的数据,备库也可以查到

5. show tables 看得到表

6、内存表不支持事务。

7、内存表是表锁,当修改频繁时,性能可能会下降。

8、不能包含TEXT,BLOB等字段。

9、内存表满后,会提示数据满错误。

10、所使用内存的大小可通过my.cnf中的max_heap_table_size指定,如max_heap_table_size=1024M

 

关于临时表

创建临时表SQL:

CREATE TEMPORARY TABLE tmp_table (name VARCHAR(10) NOT NULL,value INTEGER NOT NULL);

1. 不同会话创建的临时表仅限本会话使用,对其他会话是不可见的。

2. 表结构和数据都放在内存中

3. 会话消失表结构和数据都消失

4. 可以创建索引,删除索引

5. 主库创建的表,备库查不到,

6. show tables 看不到表

7、当数据超过临时表的最大值设定时,自动转为磁盘表,此时因需要进行IO操作,性能会大大下降。

8、最大所需内存需要通过tmp_table_size=1024M设定。

 

 

临时表和内存表都可以人工创建,但 临时表更多的作用是系统自己创建后,组织数据以提升性能,如子查询。

临时表和内存表的ENGINE 不同,临时表默认的是MyISAM,而内存表是MEMORY 

 

 

 

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [mysql 内存] 推荐:

sysbench测试MySQL服务器性能(cpu,io,内存,mysql等)

- - CSDN博客数据库推荐文章
Sysbench的安装请参考http://blog.csdn.net/mchdba/article/details/8951289. sysbench采用寻找最大素数的方式来测试CPU的性能. 首先生成需要的测试文件,文件总大小1000M,16个并发线程,随机读写模式. 执行完后会在当前目录下生成一堆小文件.

MySQL内存表与临时表

- - 数据库 - ITeye博客
1、不同会话创建的临时表,所有会话是共享的. 1、data目录下只有tmp_memory.frm ,表结构放在磁盘上,数据放在内存中. mysql 重启或者关闭后内存表里的数据会丢失,但是表结构仍然存在. 可以创建索引,删除索引,支持唯一索引. 不影响主备,主库上插入的数据,备库也可以查到. show tables 看得到表.

PHP查询MySQL大量数据的内存占用分析

- Avenger - OurMySQL
这篇文章主要是从原理, 手册和源码分析在PHP中查询MySQL返回大量结果时, 内存占用的问题, 同时对使用MySQL C API也有涉及.. 昨天, 有同事在PHP讨论群里提到, 他做的一个项目由于MySQL查询返回的结果太多(达10万条), 从而导致PHP内存不够用. 所以, 他问, 在执行下面的代码遍历返回的MySQL结果之前, 数据是否已经在内存中了.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

MySQL Replication 线程

- - CSDN博客推荐文章
Replication 线程. Mysql 的Replication 是一个异步的复制过程,从一个Mysql instace(我们称之为Master)复制到另一个Mysql instance(我们称之Slave). 在Master 与Slave 之间的实现整个复制过程主. 要由三个线程来完成,其中两个线程(Sql 线程和IO 线程)在Slave 端,另外一个线程(IO 线程)在Master 端.

mysql backup 脚本

- - ITeye博客
网上备份脚本很多,但考虑都不周全. 保证创建备份文件只能是创建者跟root可以访问,其他用户没有权限,保证了数据库备份的安全. 上面脚本是负责备份的份数管理,. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

Oracle MySQL Or NoSQL续

- - Sky.Jian 朝阳的天空
接前面一篇,这里再将之前在“中国系统架构师大会”5周年的时候发布的纪念册“IT架构实录”上的一篇文章发出来,也算是前面博文中PPT的一个文字版解读吧. Oracle,MySQL 还是 NoSQL. 随着阿里系的“去IOE”运动在社区的宣传声越来越大,国内正在掀起一股“去xxx”的技术潮. 不仅仅是互联网企业,包括运营商以及金融机构都已经开始加入到这个潮流之中.

mysql优化

- - 数据库 - ITeye博客
公司网站访问量越来越大,MySQL自然成为瓶颈,因此最近我一直在研究 MySQL  的优化,第一步自然想到的是 MySQL 系统参数的优化,作为一个访问量很大的网站(日20万人次以上)的数据库系统,不可能指望 MySQL  默认的系统参数能够让 MySQL运行得非常顺畅. 在Apache, PHP,  MySQL的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分.

MySql动态SQL

- - SQL - 编程语言 - ITeye博客
13.7. 用于预处理语句的SQL语法. MySQL 5.1对服务器一方的预制语句提供支持. 如果您使用合适的客户端编程界面,则这种支持可以发挥在MySQL 4.1中实施的高效客户端/服务器二进制协议的优势. 候选界面包括MySQL C API客户端库(用于C程序)、MySQL Connector/J(用于Java程序)和MySQL Connector/NET.

MySQL 性能

- - 谁主沉浮
这里罗列了一些基本的 MySQL 性能提示,但不是放之四海而皆准,需要根据实际的应用情况而决定. 使用标准化设计(数据库三范式),记住表的联合查询(join)性能不会差. 选择合适的字符集,虽然UTF16无所不能,但需要两倍的存储;UTF8适合各种字符,但比latin1慢,尽可能选用latin1(此条不适合中文).