当前位置:网站首页>对线HR_MySQL存储引擎,原来是这样啊
对线HR_MySQL存储引擎,原来是这样啊
2022-06-10 08:43:00 【爪哇土著、JOElib】
MySQL高级篇之存储引擎
特别鸣谢 "康师傅"
文章目录
1. 先入为主
1.1查看MySQL支持的存储引擎
SHOW ENGINES;

1.2默认存储引擎的查看
#方法一
SHOW VARIABLES LIKE '%storage_engine%'
#方法二
SELECT @@SESSION.default_storage_engine;
1.3修改默认存储引擎
#方法一 修改当前会话层的系统变量
SET SESSION default_storage_engine = '存储引擎';
#方法二 修改my.cnf配置文件
[mysqld]
default_storage_engine = 存储引擎;
1.4创建表时指定对应的存储引擎
CREATE TABLE IF NOT EXISTS table_name (
field_name data_type constraint,
field_name data_type constraint,
field_name data_type constraint
)engine = '存储引擎';
#如果没有指明存储引擎则采用默认存储引擎Innodb
1.5修改表的存储引擎
ALTER TABLE table_name engine = '存储引擎';
2.存储引擎的介绍
2.1什么是存储引擎
存储引擎可以理解为是一个表的类型,即好像变量有对应的数据类型一样,表也有对应的类型,就是存储引擎存储引擎决定了表如何去处理数据- 注意:以上两点都是基于存储引擎决定了底层的索引,而索引对应着不同的数据结构
2.2Innodb存储引擎
自MySQL5.5之后,默认存储引擎被改为
Innodb,在之前的默认存储引擎都是MYISAM无特殊情况,优先使用Innodb
Innodb是支持事务的,即Innodb支持回滚操作\Innodb是支持外键约束的常见的
DML操作如SELECT UPDATE DELETE INSERT都应该使用Innodb这个存储引擎- 使用该引擎的原因主要的原因是
MySQL对Innodb做出了优化,效率较高 - 底层索引
MYISAM对应的非聚簇索引理论上效率更高 以后阐述
- 使用该引擎的原因主要的原因是
文件目录
MySQL8.0.ibd表结构 + 表数据/索引(数据即索引,索引及数据)
MySQL5.7.opt数据库信息.frm:表结构.ibd:表数据/索引(数据即索引,索引即数据)
2.3MYISAM存储引擎
MYISAM既不支持外键约束也不支持事务MYISAM最大的优势是查询效率高,也是和非聚簇索引有关- 文件目录
MYSQL8.0.MYD存储数据.MYI存储索引.sdi表结构
MySQL5.7.MYD存储数据.MYI存储索引.frm表结构.opt数据库信息
2.4Innodb和MYISAM的区别
| 对比项 | MYISAM | InnoDb | 说明 |
|---|---|---|---|
| 外键 | 不支持 | 支持 | |
| 事务 | 不支持 | 支持 | |
| 行表锁 | 表级锁 | 行级锁 | 以Java为例,类似于synchronized的作用 |
| 缓存 | 只缓存索引,不缓存数据 | 数据和索引一起缓存 | 该原因也是和底层是否为聚簇索引导致的,所以,InnoDb对缓存的要求更高,一定程度上应i选哪个了性能 |
| 自带系统表使用 | Y | N | |
| 关注点 | 节省资源,消耗少,简单业务 | 高并发,事务,数据量大 | |
| 默认安装 | Y | Y | |
| 默认使用 | N | Y |
2.5Archive存储引擎
Archive叫做归档,顾名思义其主要作用是对数据进行归档处理,即数据存档- 因为
Archive的主要作用是归档,其支持的DML操作只有SELECT & INSERT操作- 其中
SELECT的效率比较低,INSERT的效率极高
- 其中
2.6Blackhole存储引擎
- 在
Blackhole存储引擎中,INSERT操作不被允许,SELECT操作返回的是NULL - 所以
DML最核心的查询和插入操作都是无效的,该存储引擎没有意义
2.7CSV存储引擎
CSV存储引擎最大的亮点就是其生成如下的文件目录.CSV该文件存放的是表中的数据,该文件可以被其他软件打开,如Excel等.CSM该文件存放的是表的状态
CSV最大的作用就是让数据库的表可视化,可以用其他软件直接打开,类似于JSON和XML
2.8Memory存储引擎
Memory存储引擎最大的亮点是,其他存储引擎存储的数据都在磁盘中,而Memory的数据存储在内存当中- 故
memory下的文件目录结构中,在mysq5.7只有.frm文件,在mysql8.0没有任何文件
- 故
- 因为数据存储在内存当中
- 响应速度非常的快,查询效率非常的高
底层是哈希索引,查询元素的时间复杂度是O(1),即使是B+Tree对应的聚簇索引也是O(log2N) - 数据易丢失,生命周期短
一旦mysql服务被终止,或者是重启,对应的内存都会消失
- 响应速度非常的快,查询效率非常的高
Memory数据文件和索引文件分开存储,因为其底层并不是聚簇索引Memory的大小是有限的,主要取决于max_rows和max_heap_table_sizemax_rows在创建表时可以指定max_heap_table_size默认是16mb,可以按需增大- 上面两者类似于自变量和因变量的关系
Memory的使用场景- 数据是临时的,而且必须立即使用的,而且这个数据是否被丢弃也无所谓的
- 数据量比较小,而且要被频繁的使用
- 其实这句话也不准确,对于底层的
哈希索引不适合做一些排序,查找范围值的操作
- 其实这句话也不准确,对于底层的
类似于自变量和因变量的关系
Memory的使用场景- 数据是临时的,而且必须立即使用的,而且这个数据是否被丢弃也无所谓的
- 数据量比较小,而且要被频繁的使用
- 其实这句话也不准确,对于底层的
哈希索引不适合做一些排序,查找范围值的操作
- 其实这句话也不准确,对于底层的
边栏推荐
- 只需八步将小程序一键打包生成 App
- 自己炒股怎么开户?安全吗?
- MMSegmention系列之三(基本的网络架构和预训练模型)
- Test: friend circle like function
- Numpy version problem
- 数据库视图、索引、存储过程、触发器简单创建
- Take stock of the tourist attractions in Singapore
- vtk学习之texture纹理映射
- R语言caTools包进行数据划分、scale函数进行数据缩放、class包的knn函数构建K近邻分类器、比较不同K值超参数下模型准确率和误分类率(miss classification error)
- [cryptography] AES encryption and decryption
猜你喜欢

Note taking software: goodnotes 5 Chinese version

泰国曼谷大城府被福布斯评为“后疫情时代最值得一去的城市”

Grafana启动失败报错:Grafana-server Init Failed: Could not find config defaults, make sure homepath command

Do a good job in data strategic planning and activate data value

Credit card customer churn forecast

How much do you need to learn before you can find a job in the software test of zero foundation career transition

vtk学习之texture纹理映射

Hospital blood bank management system source code blood bank source code blood bank management source code hospital source code

【密码学】AES加解密

第2章 数据的表示和运算
随机推荐
JS common time operation moment JS reference document
Credit card customer churn forecast
Qt sqlite操作笔记
JS obtain the date of birth, gender and age through ID number
Test preparation computer database day 3 MySQL
零基础转行软件测试需要学到什么程度才能找工作
【JUC系列】线程池基础使用
Hospital blood bank management system source code blood bank source code blood bank management source code hospital source code
World Ocean Day | visit the New Jersey Marine Life Aquarium and record interesting new york trips
Simple operation and debugging of GPIO in Qualcomm platform
Computer level 2 test preparation MySQL day 4
R语言使用epiDisplay包的mhor函数执行Cochran-Mantel-Haenszel检验并可视化、检验两个分类变量在调整(控制)第三个变量的情况下是否独立、输入数据为三维列联表
Idea JDBC error
YAML基本语法
Unzip the jar package and modify the configuration file (unzip, modify, compress and run)
MMSegmention系列之三(基本的网络架构和预训练模型)
Wechat applet bidirectional data binding, parent-child parameter transfer
如何在使用 Flutter时切换应用时隐藏应用预览
SAAS服务能有哪些优势
vtk学习之PipelineExecute管线的执行过程