mysql存储引擎
是用来处理表的处理器
是mysql服务软件自带的功能程序,不同的存储引擎有不同的功能和数据存储方式。
查看当前的数据库服务器可以使用哪些服务引擎
指令:show engines;
InnoDB DEFAULT 是默认的存储引擎。
修改mysql服务默认使用的存储引擎:
vim /etc/my.cnf
[mysqld]
default-storage-engine=myisam
#修改数据库默认使用的存储引擎。
#systemctl restart mysqld
建表时手动指定存储引擎:
格式:show create table 表名G;
备注:若不指定时。使用默认的存储引擎。
更改已有表的存储引擎:
格式:alter table 表名 engine=存储引擎名;
指定表使用的存储引擎
格式:create table 表名(
字段名列表
)engine=存储引擎名;
careate table 表名 (字段列表);
常用存储引擎:myisam、innodb
常用存储引擎的特点:
myisam特点 :不支持事务 、行级锁、外键;
支持表级锁 :当有人修改文件时对整个文件进行锁。
独享表空间
多用在查旬、插入操作较多的表。
相关myisam的表文件:
表名.frm 存的是表结构 DESC 表名
表名.MYD 存的是表记录 select * from 表名;
表名.MYI 存的是表索引信息
innodb特点:支持外键、 事务回滚、外键、
行级锁:当有人修改文件时对每一行的文件进行锁。
共享表空间
相关myisam的表文件:
表名.frm 存储的是表结构
表名.idb 存储的索引信息+数据
事务:一次sql从开始到结束的过程。
访问数据时从开始连接->操作记录->断开连接的过程。
事务回滚: 在事务执行过程中,有任意一步操作失败,恢复之前的所有操作。
锁的作用:避免并发访问时的冲突问题
锁类型:看的是访问类型
读锁: 又被称作 共享锁 (select)
写锁: 又被称作 排它锁或互斥锁 (insert update delete)
锁粒度:
表级锁 : 给一张表加锁 (存储引擎 myisam)
行级锁 : 给行加锁 (存储引擎 innodb)
建表是如何决定表使用那种存储引擎
处理写操作多的表适合使用innodb存储引擎,因为并发访问量大。
处理读操作多的表适合使用myisam存储引擎,因为节省资源。