傲渊山岳 发表于 2024-11-11 09:09:35

数据库存储引擎学习总结

sql存储引擎

   前提:阅读完能回答以下题目
1、InnoDb引擎和MyISAM引擎的区别?
2、存储引擎的选择?
3、存储引擎,介绍一下
4、mysql的体系结构,简单回答下
1、Mysql体系结构



[*]1、客户端

[*]用来毗连mysql的客户端、毗连数据库的应用程序或者API接口

[*]2、毗连池

[*]管理和缓冲用户毗连,为客户端请求做毗连处理
[*]主要负责用户登录数据库,进行用户的身份认证,包括校验账户暗码、权限等操纵。

[*]3、SQL处理层
接收用户的SQL请求,查询分析、权限处理、优化、效果缓存等。

[*]查询缓存:主要用来缓存所执行的select语句以及该语句的效果集
[*]分析器:词法分析(识别SQL语句关键字,如select、field、table等)、语法分析(主要就是判定SQL是否精确,是否符合Mysql的语法)
[*]优化器:选择最优的执行方案
[*]执行器:按照优化器的方案去执行,执行前校验权限,通过校验后调用引擎接口,返回执行效果

[*]4、存储引擎层

[*]可插拔
[*]存储引擎,就是管理操纵数据(存储数据、更新、查询数据)的方法和机制
[*]一个库中不同的表可以使用不同的存储引擎。
[*]常用的存储引擎有InnoDb和MyISAM,前者支持ACID特性的事故,提供行级锁定,应用广泛,后者查询速度快,但不支持事故,适合读多写少的环境。一样平常使用前者。
[*]其他引擎包括,NDB、MEMORY、BLACKHOLE

[*]5、存储器

[*]用来存储Mysql的数据文件、日志文件等物理文件。

2、存储引擎

存储引擎就是管理数据的方法和机制,存储引擎是基于表的,而不是基于库的,所以存储引擎也被称为表类型。
查看数据库支持的存储引擎

存储引擎由于和物理存储有关,需要在建表的时间声明,且不能后期修改。
show engines;
存储引擎对比



[*] Innodb:

[*]是一种兼顾高可靠性和高性能的通用存储引擎,在Mysql5.5之后,InnoDb是默认的mysql存储引擎;
[*]DML操纵遵循ACID,支持事故;
[*]行级锁,提高并发访问性能;
[*]支持外键约束,保证数据的完整性和准确性

[*] MyISAM:

[*]早期mysql默认的存储引擎;
[*]不支持事故
[*]支持表锁,不支持行锁
[*]不支持外键
[*]访问速度快

[*] Memory:

[*]内存存放。Memory引擎的表数据是存储在内存中的,由于受到硬件题目或断电题目的影响,只能将这些表作为临时表或缓存使用。
[*]hash索引

存储引擎的选择



[*]InnoDB
假如应用对事故的完整性有比较高的要求,在并发条件下要求数据的一致性,且写多的环境下,InnoDb是唯一的选择。
[*]MyISAM
假如读多写少,对查询速度有要求,且对事故完整性、并发性要求不高,那么选择MyISAM比较符合
[*]Memory
通常用作为临时表或者缓存,实际生产上,一样平常用redis代替

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 数据库存储引擎学习总结