时间:2021-07-01 10:21:17 帮助过:4人阅读
存储引擎决定了数据库最终以什么方式将数据存储
MySQL版本5.5之前用的是 MyISAM 存储引擎
MySQL版本5.5之后用的是InnoDB 存储引擎
在数据库中可以使用 show engines; 命令查看当前数据库的存储引擎
1、拥有更好的性能,读取速度较快,占用资源较少
2、锁的并发性
对整个表加锁,访问不同的表互不影响,访问相同的表冲突,并发性差
3、读写相互阻塞,写入时不能读,读时不能写
并发性差
4、数据的缓存
只缓存索引意味着,当用户查询数据时候,没有使用索引功能的话,就不会缓存到缓存区内,查询速度缓慢
5、不支持外键约束
6、不支持聚簇索引
7、不支持MVCC
8、崩溃恢复性差
9、数据压缩
仅仅在行的格式的时候进行数据压缩
10、不支持事务
1、锁的并发性
行级锁,并发性高
2、支持事务,适合处理大量短期事务
3、读写阻塞与事务隔离级别相关
4、可缓存数据和索引
5、支持聚簇索引
6、崩溃恢复性更好
7、支持MVCC高并发
8、从MySQL5.5后支持全文索引
9、从MySQL5.5.5开始为默认的数据库引擎
10、数据压缩
支持任何格式的数据压缩,节省空间
MVCC(),允许多个用户并发访问,互不干扰
比如student表
事件ID 递增,先发生的小,后发生的大
我们在不同的时间段进行添加数据,所以,inster中的事件ID也不同
当我们进行删除的时候,比如删除A记录,事件ID为150,
当我们修改的时候,其实系统做了两个操作,先删除后添加,所以两个字段的事件ID相同
当用户对这个表进行查询的时候,我们在280事件ID执行的,我们可以查询到
Bb这条修改之后的记录
只读(或者写较少)、表较小(可以接受长时间进行修复操作)
tbl_name.frm 表格式定义
tbl_name.MYD 数据文件
tbl_name.MYI 索引文件
MariaDB [hellodb]> show table status like ‘students‘\G; 查询表的引擎
而InnoDB引擎文件全部存放在数据文件中的ibdata1一个文件之中,这显然会给数据管理带来麻烦
我们可以设置选项,让Innodb引擎也可以分开存放
新版本已经自动设置问启动
旧版本默认是OFFmysqladmin -uroot -pcentos variables | grep ‘innodb_file_per_table‘
1、查看mysql支持的存储引擎show engines;
2、查看当前默认的存储引擎show variables like ‘%storage_engine%‘;
3、设置默认的存储引擎
vim /etc/my.conf
[mysqld]
default_storage_engine= InnoDB
4、查看库中所有表使用的存储引擎show table status from db_name;
5、查看库中指定表的存储引擎
show table status like ‘ tb_name ‘;
show create table tb_name;
6、设置表的存储引擎:
CREATE TABLE 表名 ENGINE=InnoDB;
ALTER TABLE tb_name ENGINE=InnoDB;
MYSQL-存储引擎
标签:vim 用户 选项 nes 隔离 空间 file 自动 ora