MyISAM , InnoDB详细解析

1,MyISAM

                特点:mysql默认的储存引擎,不支持事务处理,也不支持外键,支持表锁定,不支持行锁定,支持全文索引,支持索引缓存,支持数据压缩;其优势是访问速度快,对于事务处理没有严格要求或者是你主要的操作是select,insert为主的应用可以重点考虑使用这个储存引擎,空间占用比较低,内存使用比较低,批量插入速度快;

                扩展:

                (1),每个MyISAM在服务器磁盘上存储三个文件,文件名和表名都是一样的,但是他们有不同的扩展名,.frm是用来储存表的定义语句的,.MYD储存数据,.MYI储存索引。我们可以将数据文件和索引文件放置在不同的目录下面,平均分配IO,获得更快的速度;但是主要文件路径必须是绝对路径,同时必须是具有访问的权限;

                  (2),MyISAM类型的表可能会损坏,损坏之后不能再访问,修复可以使用CHECK TABLE 语句来检查表的健康,并且用REPAIR TABLE语句修复一个损坏的MyISAM表;

                   a:可以尝试用下面的语句修复;check table aa;  //如果有问题Msg_type里会有warning或error,就说明该表有错误,然后repair table aa;  //尝试修复aa表(多个表名用“逗号”隔开)check table aa;//再次检查aa表;

                 b:还可以使用myisamchk aa(表名).MYI 进行检查;mysqladmin -uroot -p shutdown 进行修复;

                 c:可以使用下面语句修复整个数据表;MySQLcheck -A -o -r -p ;mysqlcheck --all-databases -r;

                  (3),MyISAM还支持三种不同的储存格式,

                 a:静态表:特点是字段都是非变长字段,这样每个记录都是固定的,优点是储存非诚快速,容易缓存,出现故障容易恢复,缺点是占用空间比较多,静态表会以列的宽的进行空格补足,但是应用访问的时候不会得到这些空格,会被提前去掉;(属于默认的储存格式)。

                 b:动态表:毋庸置疑就是字段是变长的字段,优点是占用空间少,但是频繁地更新数据和删除记录会产生很多的磁盘碎片,需要定期执行OPTIMIZE TABLE 语句或者myisamchk-r命名来改善性能,并且再出现故障时恢复比较困难。

                 c:压缩表:压缩表由myisampack工具创建,占用非常小的磁盘空间;

2,InnoDB

                特点:支持事务处理,支持表行锁定,支持B树索引,支持集群索引,数据缓存,索引缓存,空间使用高,内存使用高,批量插入比较慢,支持外键;处理效率低;占用更大的磁盘空间以保留数据和索引;

                扩展:

                (1),自动增长列:对于InnoDB,自动增长列必须是索引。如果是组合索引,也必须是索引的第一列,但是对于MYISAM来说,自动增长列可以是组合索引的其他列。

                (2),外键约束:在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。

                (3),存储方式:

                a,使用共享表空间存储,这种方式创建的表的表的结构保存在.frm文件中,数据和索引保存在innodb_home_dir和innodb_data_file_apth定义的表空间中,可以是多个文件;

                b,使用多表空间存储,这种表的表结构保存在.frm中,但是每个表的数据和索引单独保存在.ibd中,如果是分区表,每个分区对应单独的.ibd文件,

              


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值