Test

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: nnn

MySqL常见面试题( from guang)

前言 - MySql 体系结构

整个MySQL Server 由以下组成

  • Connection Pool : 连接池组件
  • Management Services & Utilities : 管理服务和工具组件
  • SQL Interface : SQL接口组件
  • Parser : 查询分析器组件
  • Optimizer : 优化器组件
  • Caches & Buffers : 缓冲池组件
  • Pluggable Storage Engines : 存储引擎
  • File System : 文件系统

连接层

最上层是一些客户端和连接服务 。 包含本地的 sock 通信 和 大多数基于 客户端、服务端 工具实现 的类似于 Tcp/Ip 的通信、 主要完成一些类似于 连接处理,授权认证 以及相关的安全方案。

在这一层引入了线程池的概念。为通过认证安全接入的客户端提供线程。同样 在该层的实现基于 ssl 的安全连接, 服务器也 会为安全接入的每个客户端 验证他所具有的操作权限。

服务层

第二层架构主要是为了完成大多数的核心服务功能,SQl 接口, 缓存的查询寻, SQL的分析和优化 部分内置函数的执行, 所有跨存储引擎的功能 也在这一层实现 , 如:过程,函数。

服务器会解析查询并创建相应的内部解析树, 并完成相对应的优化(如, 确定表的查询顺序,是否利用索引等)最后生成相应的执行操作。

如果是 select 操作 , 服务器还会查询 内部的缓存。如果缓存足够大,可以提高 在大量读操作环境下的性能

引擎层

存储引擎层, 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。

存储层

数据存储层, 主要是将数据存储在文件系统之上,并完成与存储引擎的交互。 和其他数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎上,插件式的存储引擎架构,将查询处理和其他的系统任务以及数据的存储提取分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

第一部分 引擎

1.mysql三大范式
  • 第一范式(1NF): 字段不可分(列不可分)
  • 第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分, 为实现区分 通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主键
  • 第三范式(3NF):数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系
2.数据库引擎有哪些?
主流的 : InnoDb, MyIsam
3.InnoDB与MyIsam的区别
  • InnoDB 支持事务,MyIsam 不支持,对于 InnoDb 每一条SQL都默认封装成事务,自动提交.这样会影响速度.所以最好把多条SQL语句放在 bedin 和 commit 之间,组成一个事务
  • InnoDB 支持外键,而 MyIsam 不支持,对一个包含外键的InnoDB表转成MyIsam 会失败.
  • InnoDB是聚集索引,数据文件和索引是绑在一起的,必须要有主键,通过主键索引效率很高.但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询数据.因此主键不应该过大,因为主键太大,索引也会很大.MyIsam是非聚集索引,数据文件是分离的,索引保存的是文件的指针,主键索引和辅助索引是独立的
  • InnoDB不保存表的具体行数,执行 selelct count(*) from Table 时需要全表扫描,而MyIsam用一个变量保存了整个表的行数,执行上述语句只需要读出该变量即可,速度很快
  • InnoDB不支持全文索引,而MYIsam 支持全表索引,查询效率上 MyIsam要高
4.如何选择存储引擎?
  • InnoDB : 是Mysql的默认存储引擎,用于事务处理应用程序,支持外键。
  • 如果应用程序

    1. 支持外键: 对事务的完整性,数据的一致性 有比较高的要求.
    2. 支持事务: 数据操作除了 插入 和 查询 外,还包含很多的 更新、删除操作

      好处:

      • InnoDB存储引擎除了有效的 降低由于删除和更新导致的锁定
      • 还可以确保事务的完整提交和回滚

        对于类似于计费系统或者财务系统等对数据准确性要求比较高的系统,InnoDB是最合适的选择。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
test114514
test114514
42 0
|
4月前
|
机器学习/深度学习 算法 开发工具
大语言模型的直接偏好优化(DPO)对齐在PAI-QuickStart实践
阿里云的人工智能平台PAI,作为一站式的机器学习和深度学习平台,对DPO算法提供了全面的技术支持。无论是开发者还是企业客户,都可以通过PAI-QuickStart轻松实现大语言模型的DPO对齐微调。本文以阿里云最近推出的开源大型语言模型Qwen2(通义千问2)系列为例,介绍如何在PAI-QuickStart实现Qwen2的DPO算法对齐微调。
just test
click me
1017 0
test1
1340009911118900001111
338 0
|
Shell 开发工具 Perl
|
开发工具