mqsql存储引擎
什么是存储引擎:是mysql服务软件自带程序,是表的处理器,不同的存储引擎有不同的功能和数据存储方式。
如何查看表使用的存储引擎:
show create table 表名;
如何查看当前数据库支持的存储引擎:
show engines;
建表时指定表的存储引擎:
create table 表名(.....)engine=存储引擎名称;
修改表的存储引擎:
alter table 表名 engine = 存储引擎名;
修改数据库服务默认使用的存储引擎:(修改系统的配置文件 vim /etc/my.cnf)
修改后,重启数据库服务后生效;
生产环境下使用常用哪种存储引擎:
innodb的特点:
支持事务、事务回滚、外键、支持行级锁。
有两张表(.frm 表结构、.ibd 索引信息+数据记录)
myisam的特点:
不支持事务、外键,支持表级锁。
有三张表(.frm 表结构、.MYI 索引信息、.MYD 数据记录)
注:表级锁 给整张表加锁
行级锁 指定给当前被访问的记录加锁
为什么加锁:为了解决客户端对表的并发访问冲突问题
锁类型?给用户对表的访问区分
读锁(共享锁)(select)
写锁(互斥锁)(insert delete update)
什么是事务:一次SQL操作从开始到结束的过程。
什么是事务回滚:一次SQL操作没有正确完成时,恢复之前的所有操作。
事务日志文件(ib_logfile0(固定大小)(对表进行的SQL命令)、ib_logfile1(固定大小)(对表进行的SQL命令)、ibdata1(大小可变)(SQL命令后产生的数据信息)):通过其回滚。
建表时如何决定表使用的存储引擎:
接受读请求多的表:适合使用myisam (并发量小,但是系统开销小)
接受写请求多的表:适合使用innodb (并发访问大,但是系统开销大)