当前位置: 首页 > news >正文

小林coding|八股|MySQL

SQL基础

数据库三大范式是什么?

第二范式:当是联合主键(A,B)时,每一列都必须和A有关 并且 和B有关。

MySQL如何避免重复插入数据?

理解不了

MySQL 怎么连表查询?

连表查询,ON是两个表连接起来的 中介,也是两个圈圈相交的部分
内连接 符合ON 【条件】才留下
左连接 符合ON 【条件】+左表是亲儿子 都留下
右连接 符合ON 【条件】+右表是亲儿子 都留下
全连接 都不看ON【条件】 直接全部留下
在这里插入图片描述

  • 内连接:
    在这里插入图片描述

说一下外键约束

因为数据库要遵循第三范式,所以有的表要分为2个。但这2个表又要有连接,所以有了外键约束这个语法

外键约束是主表主键与从表外键之间的关系
两个表因为外键产生了特别的链接

外键的主要作用是:数据插入删除的完整性
可以直接插入 插入 (104, 赵六, 22, 3),因为课程ID 3(历史)在 courses表中存在。
插入 (105, 钱七, 20, 99),数据库会报错,因为课程ID 99在 courses表中不存在。

在这里插入图片描述

MySQL的关键字in和exist

in:先制作符合子查询的从表,拿着主表在从表中一个个查。 适合小子表,因为会制作一个符合条件的从表。
exsit:拿着主表直接在从表中查,查到就触发短路机制。适合大子表

mysql中的一些基本函数,你知道哪些?

在这里插入图片描述
select在这里就不是查询了,而是请生成。
执行后的结果是

Greeting
Hello World

sql题:给学生表、课程成绩表,求不存在01课程但存在02课程的学生的成绩

在这里插入图片描述

存储引擎

引擎引擎,全称是存储引擎啊

说一下mysql的innodb与MyISAM的区别?

索引

首先得知道 主键索引的叶子节点是数据,索引不单单是索引(目录),还是存储引擎中的存储结构。
二级索引的叶子节点就是主键值。就不是实际数据了。

MySQL聚簇索引和非聚簇索引的区别是什么?

我终于知道了,感谢豆包。
聚簇索引它是一个存储结构!叶子节点中就把MySQL的数据支起来了。
二级索引他才是我们常说的目录!叶子节点是指向主键的指针。实际数据在主键的聚簇索引中!!!

如果聚簇索引的数据更新,它的存储要不要变化?

  1. 要看他是不是主键字段,如果是主键字段,就要维护b+树的有序性了。
  2. 如果不是,完全不需要理会。

性别字段能加索引么?为啥?

说出这个二级索引区分度很低且需要很复杂的回表操作即可

说说B+树和B树的区别

  1. 从非叶节点说:因为B树的这些节点中又有索引又有数据,所以一个框框里节点会更少(饶了很多次弯才想到)。所以B+树会更矮胖。
  2. 从叶子节点说:B+树之间用双向链表连接了起来,更有利于范围查询。

为什么 MySQL 不用 跳表?Redis不用B+Tree?

  1. 首先我们知道MySQL主要是select查询语句居多。2kw条数据B+Tree只需要3次io操作,但跳表需要24次io操作(2^24次方),显然B+Tree会更好。
  2. Redis的应用场景中查操作B+Tree与跳表因为在内存中,这个查询速度并不会太受影响。但是插入操作,B+tree会很复杂

联合索引的实现原理?

  1. 一旦提到联合索引就必会碰到一个问题:最左匹配原则。
  2. 联合查询(a,b)。a是全局有序的(1,2,2,2,3,3,3,4),b是无序的(12,7,8,2,3,8,10),可以看到此时b根本就不符合B+Tree要求的索引是有序的。

什么是覆盖索引?

  1. 当我们谈论联合索引时,一定会说到覆盖索引
  2. 覆盖索引就是 不需要回表操作,索引中就包含需要查询的值的

索引优化详细讲讲

  1. 前缀索引(前缀索引优化):把索引缩短
  2. 覆盖索引(覆盖索引优化):不需要回表
  3. 记住select…where A or B中。A,B都需要是索引列,不然索引会失效。查询就变成了全表扫描。

事务

mysql可能出现什么和并发相关问题?

  1. 脏读。一个客户端读到了另一个客户端尚未提交的数据。
  2. 不可重复读。一个客户端一直读,且读的前后数据不一样
  3. 幻读。第一次读,第二次读数据条数不同。怀疑自己是不是出现了幻觉。是最难避免的

事务的隔离级别有哪些?

  1. 【读未提交】 顾名思义读到未提交的数据
  2. 【读提交】 读提交了的数据
  3. 【可重复读】事务A开始时,会 有一个readview(约等于在启动事务的时候拍了一张快照),事务A中读的是快照,提交事务后才是正常读
  4. 【串行化】 没有了并行,事务都是串行执行

举个例子说可重复读下的幻读问题

事务A读不到这条数据(因为Read View),但却可以update。

在这里补充 / 图解MySQL

日志

经典的两个问题,redo log 与 undo log

性能调优

给你张表,发现查询速度很慢,你有那些解决方案

  1. 索引优化
  2. 引入redis
  3. 当单表数据超过2kw时,将表分为几个小表。

架构

MySQL主从复制了解吗

在这里插入图片描述
从库就是把主库复制了一遍。【主库】负责写,【从库】负责读。

http://www.dtcms.com/a/500648.html

相关文章:

  • K8S(十四)—— K8s实战:HPA(Pod水平自动伸缩)完整部署与测试指南
  • wordpress本站导航在哪里免费海报制作模板
  • Java基础语法—最小单位、及注释
  • 损失函数(Loss Function)、反向传播(Backward Propagation)和优化器(Optimizer)学习笔记
  • actix-web开发环境搭建
  • 建设银行深分行圳招聘网站网站建设虚拟
  • 温州专业手机网站制作多少钱炽乐清网站建设
  • 燕之屋入选轻工业数字化转型“领航者”案例,引领行业智能化升级新篇章
  • 网站开发服务费属于哪种进项上海企业服务云代表啥
  • 给企业做网站的好处德州公司做网站
  • 个人备案可以做门户网站吗文创产品设计方案ppt
  • 登封哪里有做网站的设计一套网站费用
  • 网站建设方案实例阿里云装wordpress
  • 淮南网站开发seo公司软件
  • goofys或者s3fs将Minio桶挂载成本地目录测试记录
  • TENGJUN防水TYPE-C立插连接器:从技术细节到工业价值的深度解析
  • 男女性直接做的视频网站广州开发区官网
  • 门户网站建设的背景和意义哪些网站推广公司
  • 贵州贵阳网站开发容桂网站建设原创
  • React-Router Data Mode路由配置和Suspense懒加载
  • 江西商城网站建设广东省建设工程交易中心网站
  • 建网站知识企业系统管理软件有哪些
  • IotDB常规使用
  • 网站模板 psd最新企业名录搜索软件
  • Vue3-Devtools开发者工具制作与安装
  • emeinet亿玫网站建设app制作开发公司地址
  • 有没有什么专业做美业的网站四川创企科技有限责任公司
  • 芋道源码 - 基于滑块验证码(blockPuzzle), 登录实现
  • 网站关键词优化报价新泰网站开发制作
  • flash静态网站怎么做个人网页