存储引擎是mysql服务软件自带的功能程序,不同存储引擎有不同的功能和数据存储方式
show engines; 查看当前数据库服务器可以使用的存储引擎
show create table t1; 查看t1表的存储引擎
建表时指定存储引擎
create table t1(id int)engine=innodb;
cerate table t1(id int)engine=myisam;
修改表的存储引擎
alter table t1 engine=innodb;
修改默认存储引擎
vim /etc/my.cnf
default-storage-engine=myisam
常用存储引擎的特点
myisam特点
不支持外键、行级锁、事务
支持表级锁 对表访问时,对表加锁
独享表空间
表名.frm 存放表结构 DESC 表名
表名.MYD 存放表记录(数据) select * from 表名;
表名.MYI 存放表索引
合适读操作比较多的表,每个表只锁一次,省资源
innodb特点
支持外键、行级锁、事务
对表访问时,只给被访问的行加锁
共享表空间
表名.frm 存放表结构
表名.ibd 存放表记录+表索引
适合写操作比较多的表
锁
锁: 解决的是并发访问冲突问题
锁类型:
读锁(select ) 共享锁
写锁(insert update delete)排它锁 互斥锁
锁粒度:表级锁 行级锁
事务
事务:一次sql访问从开始到结束的过程
事务回滚:访问过程中任意一步操作失败,恢复之前所有的操作。
事务日志文件 /var/lib/mysql
ib_logfile0 存储sql命令
ib_logfile1 存储sql命令
ibdata1 存储数据信息