五、mysql存储引擎

1.1 存储引擎介绍: 是mysql数据库软件自带的功能程序,
每种存储引擎的功能和数据存储方式也不同
存储引擎就处理表的处理器
1.2 查看数据库服务支持的存储引擎有那些?
mysql> show engines;
InnoDB DEFAULT

1.3 查看已有的表使用的存储引擎
show create table 表名;

1.4 修改数据库服务默认使用的存储引擎
]#vim /etc/my.cnf
[mysqld]
default-storage-engine=myisam
:wq
]# systemctl restart mysqld

1.5 修改表使用的存储引擎,或 建表时指定表使用的存储引擎
alter table 表 engine=存储引擎名;
create table 表(字段列表)engine=存储引擎名;

1.6 常用存储引擎的特点
innodb特点:
支持事务 、 事务回滚 、行级锁 、外键
存储方式: 一个表对应2个存储文件
表名.frm 表结构
表名.ibd 数据和索引

myisam特点
不支持事务 、 事务回滚、外键
支持表级锁
存储方式: 一个表对应3个存储文件
表名.frm 表结构
表名.MYD 数据
表名.MYI 索引

事务:对数据库服务的访问过程(连接数据库服务器 操作数据 断开连接)

事务回滚 : 在事务执行过程中,任何一步操作失败,都会恢复之前的所有操作。

插卡 (与数据库服务器建立连接)
转账: 对方卡号 888888
金额 50000
ok
提示转账成功 -50000 +50000
提示转账失败 +50000
退卡

mysql数据库服务使用事务日志文件记录,对innodb存储引擎表执行的sql操作。
cd /var/lib/mysql/
ib_logfile0 -|
|------> 记录SQL命令
ib_logfile1 -|
insert into t1 values(8888);
ibdata1 ----> 数据源(sql命令执行后产生的数据信息)

锁粒度:
表级锁(myisam)给整张表加锁
行级锁 (innodb) 只给表中当前被操作行加锁

锁的作用:解决对表的并发访问冲突问题。
select * from t1 where id <=20;
insert
delete from t1;
update t1 set name="bob" where name="lucy";
update t1 set name="tom" where name="jerry";
锁类型
读锁 (共享锁)
写锁 (互斥锁)

1.7 建表时如何决定表使用那种存储引擎
执行写操作多的表适合使用innodb存储引擎,可以并发访问。
执行查操作多的表适合使用myisam存储引擎,可以节省系统资源

posted @ 2021-06-21 16:15  落樰兂痕  阅读(35)  评论(0编辑  收藏  举报