MySQL存储结构MyISAM和InnoDB

原创 2006年06月06日 23:07:00
MySQL两种表存储结构MyISAM和InnoDB的性能比较测试




MyISAM 表。MyISAM 存储格式自版本 3.23 以来是 MySQL 中的缺省类型,它有下列特点:

■ 如果操作系统自身允许更大的文件,那么文件比 ISAM 存储方法的大。

■ 数据以低字节优先的机器独立格式存储。这表示可将表从一种机器拷贝到另一种机器,即使它们的体系结构不同也可以拷贝。

■ 数值索引值占的存储空间较少,因为它们是按高字节优先存储的。索引值在低位字节中变化很快,因此高位字节更容易比较。

■ AUTO_INCREMENT 处理比 ISAM 的表更好。详细内容在第2章讨论。

■ 减少了几个索引限制。例如,可对含 NULL 值的列进行索引,还可以对 BLOB 和 TEXT 类型的列进行索引。

■ 为了改善表的完整性检查,每个表都具有一个标志,在 myisamchk 对表进行过检查后,设置该标志。可利用 myisamchk - fast 跳过对自前次检查以来尚未被修改过表的检查,这样使此管理任务更快。表中还有一个指示表是否正常关闭的标志。如果服务器关闭不正常,或机器崩溃,此标志可用来检测出服务器起动时需要检查的表。


InnoDb 介绍:
InnoDb 存储引擎,支持事务,行锁,外键.InnoDb 设计用来处理大数据量时提供最好的
性能.
InnoDb 提供自己的缓存(buffer pool) 还缓存数据和索引.innodb 把数据和索引存放
到表空间(tablespace) ,表空间是几个磁盘文件或者是原是设备文件(raw disk). 它
不像MyISAM 存储引擎,每个表只是一个文件.(这样在某些系统下最大2G限制). 而Innodb
没有此限制,可以无限扩展.
Mysql4.0 的以后版本都支持innodb 存储.

InnoDb 配置:
innodb 管理的两个磁盘文件是表空间文件和日志文件. 
表空间定义:
innodb_data_file_path=datafile_spec1[;datafile_spec2]...
文件声明格式: file_name:file_size[:autoextend[:max:max_file_size]]
innodb_data_home_dir 声明文件存放目录.

mysql 读取配置文件的顺序:
`/etc/my.cnf' Global options. 
`DATADIR/my.cnf' Server-specific options. 
`defaults-extra-file' The file specified with the --defaults-extra-file option. 
`~/.my.cnf' User-specific options. 

内存使用下面的加起来不要超过2G:

innodb_buffer_pool_size
+ key_buffer_size
+ max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size)
+ max_connections*2MB

InnoDb 参数说明:

innodb_additional_mem_pool_size 
存储数据字典信息和内部结构信息, 如果你的表越多,这个需要的内存就越多,如果你预留的空间不够,就开始象系统申请内存.errlog 会有错误. 缺省设置为1M.
innodb_autoextend_increment 
当表空间满时字段扩展大小.

innodb_buffer_pool_size 
数据和索引用的缓存大小.一般时系统物理内存的50~80% .

相关文章推荐

两种主要MySQL表存储结构MyISAM和InnoDB比较

转至:http://www.codesky.net/article/201011/147080.html 摘要:MyISAM 是MySQL关系数据库管理系统的默认储存引擎,而InnoDB是MySQL...
  • whycold
  • whycold
  • 2013年12月29日 20:36
  • 1406

mysql两种表存储结构myisam和innodb的性能比较测试

http://blog.sina.com.cn/s/blog_4aea5d8901000czy.html MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是In...

Myisam和Innodb索引实现的不同(存储结构)

参考网址:http://www.2cto.com/database/201211/172380.html myisam和innodb索引实现的不同   MyISAM引擎使用B+Tree作为索引结...

MySQL存储引擎--MyISAM与InnoDB区别

MyISAM 和InnoDB 讲解   InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级...

mysql数据库-MyISAM与InnoDB两个存储引擎的索引实现方式

1.MyISAM索引实现:主键索引:MyISAM数据存储文件和索引文件是分开的。MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM主键索引的原理...

Mysql 存储引擎中InnoDB与Myisam的主要区别

1, 事务处理 innodb 支持事务功能,myisam 不支持。 Myisam 的执行速度更快,性能更好。 2,select ,update ,insert ,delete 操...

Mysql存储引擎详解(MyISAM与InnoDB的区别)

存储引擎     MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能...

MySQL_MyISAM和InnoDB存储引擎的比较

MySQL_MyISAM和InnoDB存储引擎的比较  MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。  MyI...

MySQL存储引擎--MyISAM与InnoDB区别

转载自http://blog.csdn.net/xifeijian/article/details/20316775MyISAM 和InnoDB 讲解   InnoDB和MyISAM是许多人在使用My...
  • teffi
  • teffi
  • 2017年03月16日 15:38
  • 131

MySQL两种存储引擎MyISAM和InnoDB的比较

其实MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种 注意 MyISAM是MySQL的默认存储引擎 主要区别1. 事务 InnoDB 支持事务功能,MyISAM 不支...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL存储结构MyISAM和InnoDB
举报原因:
原因补充:

(最多只允许输入30个字)