美文网首页
今日流程

今日流程

作者: 天道灬酬勤 | 来源:发表于2018-12-19 21:04 被阅读13次

一关系型数据库

1、Mysql 部分

1.1 架构图介绍

架构图.png

1.连接管理与安全验证是什么?

每个客户端都会建立一个与服务器连接的线程,服务器会有一个线程池来管理这些
连接;如果客户端需要连接到 MYSQL 数据库还需要进行验证,包括用户名、密码、主机信息等。

2.解析器是什么?

解析器的作用主要是分析查询语句,最终生成解析树;首先解析器会对查询语句的语法进行分析,分析语法是否有问题。还有解析器会查询缓存,如果在缓存中有对应的
语句,就返回查询结果不进行接下来的优化执行操作。前提是缓存中的数据没有被修
改,当然如果被修改了也会被清出缓存。

3.优化器怎么用?

优化器的作用主要是对查询语句进行优化操作,包括选择合适的索引,数据的读取方
式,包括获取查询的开销信息,统计信息等,这也是为什么图中会有优化器指向存储
引擎的箭头。之前在别的文章没有看到优化器跟存储引擎之间的关系,在这里我个人
的理解是因为优化器需要通过存储引擎获取查询的大致数据和统计信息。

4.执行器是什么?

执行器包括执行查询语句,返回查询结果,生成执行计划包括与存储引擎的一些处理操作。

5.存储引擎都有哪些?

1)B InnoDB 存储引擎
InnoDB 是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,InnoDB
是默认的 MySQL 引擎。
2) MyISAM 存储引擎
MyISAM 基于 ISAM 存储引擎,并对其进行扩展。它是在 Web、数据仓储和其他应用环境下
最常使用的存储引擎之一。MyISAM 拥有较高的插入、查询速度,但不支持事物。
3)Y MEMORY 存储引擎
MEMORY 存储引擎将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问。

6.事务介绍

mysql 和其它的数据库产品有一个很大的不同就是事务由存储引擎所决定,例如
MYISAM,MEMORY,ARCHIVE 都不支持事务,事务就是为了解决一组查询要么全部执行成功,要么全部执行失败。
mysql 事务默认是采取自动提交的模式,除非显示开始一个事务
SHOW VARIABLES LIKE 'AUTOCOMMIT';
修改自动提交模式,0=OFF,1=ON
注意:修改自动提交对非事务类型的表是无效的,因为它们本身就没有提交和回滚
的概念,还有一些命令是会强制自动提交的,比如 DLL 命令、lock tables 等。
SET AUTOCOMMIT=OFF 或 SET AUTOCOMMIT=0

7.事务的 ACID(四大)特性是什么?

答:数据库事务 transanction 正确执行的四个基本要素。ACID,原子性(Atomicity)、
一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。
1)原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停
滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开
始前的状态,就像这个事务从来没有执行过一样。
2)一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
3)隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。
如果有两个事务,运行在相同的时间内,执行 相同的功能,事务的隔离性将确保
每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了
防止事务操作间的混淆, 必须串行化或序列化请 求,使得在同一时间仅有一个
请求用于同一数据。
4)持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据
库之中,并不会被回滚。

8.mysql 有四种隔离级别分别是什么:

未提交读(READ UNCOMMITTED):未提交读隔离级别也叫读脏,就是事务可以读
取其它事务未提交的数据。
提交读(READ COMMITTED):在其它数据库系统比如 SQL Server 默认的隔离级别就
是提交读,已提交读隔离级别就是在事务未提交之前所做的修改其它事务是不可见
的。
可重复读(REPEATABLE READ):保证同一个事务中的多次相同的查询的结果是一致
的,比如一个事务一开始查询了一条记录然后过了几秒钟又执行了相同的查询,保证
两次查询的结果是相同的,可重复读也是 mysql 的默认隔离级别。
可串行化(SERIALIZABLE):可串行化就是保证读取的范围内没有新的数据插入,比
如事务第一次查询得到某个范围的数据,第二次查询也同样得到了相同范围的数据,
中间没有新的数据插入到该范围中。

9.创建存储过程怎么写?

“pr_add” 是个简单的 MySQL 存储过程,这个 MySQL 存储过程有两个 int 类型的输入参数 “a”、“b”,返回这两个参数的和。
1) drop procedure if exists pr_add;
2)计算两个数之和
create procedure pr_add ( a int, b int ) begin declare c int;
if a is null then set a = 0;
end if;
if b is null then set b = 0;
end if;
set c = a + b;
select c as sum;

10.触发器怎么写?

触发器语句:
create trigger 触发器的名字 on 操作表
for|after instead of
update|insert|delete

面试题

jmyp.png

相关文章

  • 今日流程

    一关系型数据库 1、Mysql 部分 1.1 架构图介绍 1.连接管理与安全验证是什么? 每个客户端都会建立一个与...

  • 今日流程

    1.看场地。 2.画室请谭一吃饭。画画 3.速写打卡已完成。还有个涂鸦打卡。晚上画一下。无主之地。 4.好好想想画...

  • 今日流程

    一、面试题 抽象类和接口的区别 1.接口描述了方法的特征,不给出实现,一方面解决java的单继承问题,实现了强大的...

  • 今日流程

    有难度的事情才是真正进步的开始——王纪琼 今日流程 原本八点下夜班可以早早回家,家里老公和妹妹还发着烧,昨...

  • 2023.2.9今日流程

    1.孩子因为累不想去学舞蹈了,我当时确实有点说教了几句发现不管事,而我灵机一动通过让孩子看他跳舞的视频,轻松让他又...

  • Day2【20190714】纸质书籍永远不会消亡

    本文提纲001今日流程002读书打卡内容003牛班打卡内容 001今日流程 13:11醒,刷牙洗脸+吃面+听芝士小...

  • 4.18日精进

    今日体验:今天休息去公司开会讲了空调清洗的流程。 核心:流程明确了工作的顺序。 转身用:以流程为标准。

  • 今日流程图

    1、面试题 谈谈对Spring框架的理解 Spring是一个封层的一站式开发的轻量级开源框架,通过配置文件中的 元...

  • 今日流程图

    问:自定义指令(v‐check、v‐focus)的方法有哪些?它有哪些钩子函数?还有哪些钩子函数参数?答:全局定义...

  • 今日流程12/18

    面试题 1.抽象类与接口的区别 2.常用的集合有哪些,谈谈你对他们的理解 3.==和equals()的区别? 4....

网友评论

      本文标题:今日流程

      本文链接:https://www.haomeiwen.com/subject/nvyskqtx.html