mysql三大引擎InnoDB,MyISAM,MEMORY(heap)

mysql三大引擎:InnoDB,MyISAM,MEMORY。

InnoDB:磁盘表,支持事务,支持行级锁,B+Tree索引

MyISAM:磁盘表,不支持事务,支持表级锁,B+Tree索引

MEMORY(Heap):内存表,不支持事务,表级锁,Hash索引,不支持Blob,Text大类型

 

mysql变量max_heap_table_size默认大小16777216 Byte (16m)

 

理论上说,只要你内存足够大,表就可以有多大,但是默认内存表默认的大小是64MB(如果我没有记错的话),如果我们要设置成自己想要的大小,我们需要在my.cnf文件中修改max_heap_table_size参数,修改完成后,要重启MySQL才会生效。如果我们的表满了以后,MySQL并不会把数据存储到硬盘中,而是直接报表已经满了的错误。

转:http://my.oschina.net/lanzp/blog/369179

 

show variables like '%table_size%';//单表最大大小为下面对应的值

result:(B)

max_heap_table_size16777216B

tmp_table_size                36700160B

 

 

1.临时表:表建在内存里,数据在内存里

2.内存表:表建在磁盘里,数据在内存里

内存表:

1. 通过参数控制:max_heap_table_size大小来设定内存表大小

2. 到达max_heap_table_size所设置的内存上限后报错。

3. 表定义保存在磁盘上,数据和索引保存在内存里面。

4. 不能包含TEXT、BLOB等字段。

临时表:

1. 通过参数控制:tmp_table_size大小来设定临时表大小。

2. 到达tmp_table_size上限后会在磁盘上创建临时文件。

3. 表定义和数据都在内存里。

4. 可以包含TEXT, BLOB等字段。

转:http://www.dewen.org/q/255/mysql+%E4%BB%80%E4%B9%88%E6%A0%B7%E6%83%85%E5%86%B5%E4%BD%BF%E7%94%A8%E4%B8%B4%E6%97%B6%E8%A1%A8%EF%BC%8C%E5%86%85%E5%AD%98%E8%A1%A8%E6%9D%A5%E5%8A%A0%E5%BF%AB%E9%80%9F%E5%BA%A6%EF%BC%9F

猜你喜欢

转载自itace.iteye.com/blog/2307518