MySQL存储结构MyISAM和InnoDB

本文比较了MySQL中的MyISAM和InnoDB两种表存储结构。MyISAM自MySQL 3.23版本以来作为默认类型,支持大文件和跨平台复制等特性。InnoDB则提供了事务支持、行级锁定及外键约束等功能,适用于大数据量处理。
MySQL两种表存储结构MyISAM和InnoDB的性能比较测试




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

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

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

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

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

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

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


InnoDb介绍:
InnoDb存储引擎,支持事务,行锁,外键.InnoDb设计用来处理大数据量时提供最好的
性能.
InnoDb提供自己的缓存(bufferpool)还缓存数据和索引.innodb把数据和索引存放
到表空间(tablespace),表空间是几个磁盘文件或者是原是设备文件(rawdisk).它
不像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'Globaloptions.
`DATADIR/my.cnf'Server-specificoptions.
`defaults-extra-file'Thefilespecifiedwiththe--defaults-extra-fileoption.
`~/.my.cnf'User-specificoptions.

内存使用下面的加起来不要超过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%.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值