cpp选手备注秋招 MySQL学习笔记 day8

一.关于MySQL的知识

1.SQL中索引存在的意义,建立索引的方法

索引加快了查询,另外对于二级索引如果有需要的信息减少了回表;建立索引要在那些有区分度的信息上。

2.索引失效的5种情况

使用函数、索引列计算、like开头的%、隐式类型转换、覆盖索引不符合最左匹配原则

3.MySQL支持的四种隔离级别以及原理

读未提交、读提交、可重复读、串行化

不解决任何问题,解决脏读,解决不可重复读,几乎解决所有问题

mvcc可以使得读提交保证,加上next key lock

4.MySQL的原子性是怎么实现的

原子性是指事务要么全部成功要么全部失败,通过undo log和回滚实现的。

5.关于覆盖索引的知识

覆盖索引的等值操作可以一直利用索引,而范围操作前面可以,自己也可以,后面就不能利用索引

6.聚簇索引和二级索引

二级索引的索引节点往往存储的是不完整的信息比如主键,而聚簇索引除了存储索引还存储了完整的数据

建立多个索引会在MySQL中形成多个独立的b+树

7.为什么使用b+树而不是红黑树,哈希索引这些?

因为b+树的叶子节点存储数据,非叶子节点存储索引,树的层数低,可以减少磁盘IO;另外叶子节点存储数据适合按页读取;b+树叶子节点之间用指针链接,便于范围查询。

8.MySQL常见的存储引擎

innodb和mylsam

9.undo log redo log和bin log

前者保证原子性,后面两个确保写入的持久性,两阶段写。

总结,对于优化SQL语句要从联合索引这些角度去考虑

相关推荐
传奇开心果编程27 分钟前
【Jetpack Compose基础语法学与练】第7课 if条件渲染 + 列表基础(LazyColumn)
学习·ui·kotlin·android jetpack
Rabitebla1 小时前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法
库玛西1 小时前
数据结构与算法之美:树、森林与二叉树全解析
c语言·数据结构·笔记·考研·算法·学习方法
小贺儿开发1 小时前
Unity 结合百度AI开放平台 手写文字识别
人工智能·科技·学习·unity·云服务·文字识别·手写文字
传奇开心果编程1 小时前
【SwiftUI入门练中学】第1课 从零开始
学习·ui·ios·swiftui·swift
是隼人1 小时前
buuctf-pwn ciscn_2019_sw_1(32位只有一次格式化机会)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
传奇开心果编程2 小时前
【Jetpack Compose基础语法学与练】第9课 SideEffect副作用 + LaunchedEffect,处理异步任务和生命周期
android·学习·ui·kotlin·android jetpack
传奇开心果编程2 小时前
【ArkUI 练中学】第14课:应用性能优化实战
学习·ui·华为·harmonyos
PNP Robotics2 小时前
【PNP具身解读】GPT6 Astra:具身智能新范式,大模型 + Franka机器人快速落地验证一、GPT6 Astra 背后的布局、数据与具身方向
人工智能·学习·机器学习·机器人
小李不想当小白3 小时前
PCB结构与组成(PCB设计入门学习笔记)
经验分享·笔记·单片机·嵌入式硬件·学习·pcb工艺·pcb