前戏
存储引擎层:
简单来说,就是数据的存储方式。在MySQL中,我们可以使用`show engines`查看当前数据库版本支持哪些引擎,常见的数据存储引擎:InnoDB、MyISAM、NDB…
常见面试题:
请简述MySQL的MyISAM引擎与InnoDB引擎的区别
- MyISAM引擎:擅长数据的查询,支持全文索引
- InnoDB引擎:Supports transactions, row-level locking, and foreign keys,支持事务处理、行级锁、支持外键。
存储层(数据文件是如何进行存储的)
问题:存储引擎到底是如何保存数据文件的?
create database db_itheima default charset=utf8;
当数据库创建完后可以看到/data/文件夹
mysql5的版本会在db_itheima文件夹中还有一个文件db.opt
,存放内容为数据库的编码格式。这里是用mysql8.0
MyISAM引擎
mysql> use db_itheima;
Database changed
mysql> create table tb_user(id int, name char(1)) engine=myisam default charset=utf8;
*.frm :框架文件,定义数据表结构
*.MYI :INDEX索引,主要用于存放索引文件
*.MYD:数据文件
InnoDB引擎
mysql> use db_itheima1
Database changed
mysql> create table tb_user(id int, name char(1)) engine=innodb default charset=utf8;
*.ibd:索引文件+数据文件
其实InnoDB引擎不仅仅会产生以上文件,其在外部data目录中也会产生一个文件(确切来说不能叫做产生文件,而应该叫做共享文件)
所以由此可知,InnoDB引擎的数据备份不能简简单单的通过拷贝方式实现,必须使用专业的备份工具。
注:mysql8.0以及不支持MyISAM引擎了
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/77326.html