关于存储引擎
MyISAM
MySQL5.3版本以前使用的存储引擎,当你在创建表的时候,默认存储引擎就是MyISAM
例:create table test(
id int unsigned auto_increment primary key,
name char(32) not null default'',
age int not null default 1
)charset=utf8 ENGINE=MyISAM #可以指定存储引擎
Innodb
MySQL5.5版本以后,不指定引擎,默认的存储引擎就是Innodb
PS:如果高版本的MySQL做数据迁移至低版本的MySQL中,要注意一定要在指定数据库,否则高版本迁移至低版本做数据导入时候会出问题(相反低版本迁移至高版本也同理)
PS:如果涉及钱等重要的数据,在老版本5.3以前的数据库,建立新表的时候一定要指定引擎是innodb,要支持事物,执行指令出现意外或者错误时候可以回滚
MyISAM和Innodb的区别
1、Innodb支持事物,MyISAM支持事物
2、MyISAM是表锁,Innodb是行锁
什么是MySQL的锁
相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制
MySQL大致可归纳为以下3种锁:
1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般