MySQL引擎
MYSQL常用的有两个引擎,
一个是innerDB,一个是MYISAM,这两个是有区别的,MYSQL默认的是InnoDB
建表时候可以选择默认的引擎,也可以说是表的类型。
以下是MyISANM和innoDB的区别
细说一下里面的区别:
InnoDB支持事务,MyISAM不支持
存储限制,MyISAM最多到64TB,innodb没有限制(会受到系统文件大小的限制,比如系统文件单个最大2G)
锁粒度,Innodb最细是到行锁,例如,更新一个数据的时候,innodb只会锁住要更新的那一行,而MyISAM则是表锁,更新的时候,会把整个表锁住。
因此面高并发的时候,MyISAM的访问会时常受限制,这也是后面MySQL默认使用innodb的原因之一。
MYISAM的文件结构,主要分两个,一个是MYD(MYData),存储数据,一个MYI(MYIndex),作索引(index是索引的关键词)
innodb的文件结构,表单独做一个文件,里面包含了这个表的数据和索引
如何选择?
- 如果需要事务,选择innodb,
- 如果需要外键,使用innodb(不支持用物理外键,删除数据的时候太麻烦了)
- 如果数据库中大部分都是读取查询的操作,那么可以用MYISAM,如果写入多,就用InnoDB