Chinaunix首页 | 论坛 | 博客
  • 博客访问: 88985
  • 博文数量: 69
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 697
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-03 23:44
文章分类

全部博文(69)

文章存档

2014年(69)

我的朋友

分类: Mysql/postgreSQL

2014-05-15 23:55:12

一、构成上的区别:
1、MyISAM:每张表被存放在三个文件,扩展名为.frm 存放表定义,扩展名为.MYD (MYData)存放数据文件,扩展名是.MYI (MYIndex)存放索引文件;
2、InnoDB:ibdata1 存储数据与索引的数据文件,ib_logfile0与ib_logfile1 日志文件

二、事务处理上方面:
1、MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持;
2、InnoDB提供事务支持事务,外部键等高级数据库功能

三、sql操作:如果执行大量的SELECT,MyISAM是更好的选择,如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表

四、对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引

五、锁:
1、MyISAM:支持表锁
2、InnoDB:支持表锁和行锁,如果执行sql语句时MySQL不能确定要扫描的范围,InnoDB表会锁全表

六、表的具体行数:
select count(*) from table,MyISAM只要简单的读出保存好的行数;
InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行;
注意的是,当count(*)语句包含where条件时,两种表的操作是一样的。
阅读(218) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~