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语句要从联合索引这些角度去考虑

相关推荐
敬往事一杯酒哈4 小时前
海康 AGV 导航读码器学习
学习
qq_284274056 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_284274057 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Titan20248 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
小雪崩9 小时前
嵌入式学习 day64:字符设备驱动
学习
深圳老胡9 小时前
STM32CubeMX 生成 CMake 工程,用 VSCode 编译与调试的完整流程
笔记·stm32·单片机·代码规范
个 人 练 习 生9 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
坤坤子吖9 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
乐橙开放平台10 小时前
智慧连锁客流检测和离岗检测怎么对接
大数据·人工智能·笔记·物联网·自动化·音视频·智能家居
零基础12310 小时前
FinalShell 使用教程:从安装到高效运维
运维·经验分享·笔记·finalshell