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

相关推荐
代码山河19 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
sbjdhjd20 小时前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
释厄62320 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
海绵宝宝的月光宝盒1 天前
14-AutoCAD-阵列命令应用与案例实战(AR)
经验分享·笔记·自动化·课程设计·制造·学习方法·cad
小嘉丶学长1 天前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节
白山编程大哥1 天前
接口幂等性是什么?如何设计?
笔记
ACP广源盛139246256731 天前
6 盘位存储扩展方案选型笔记:YLB3116 @ACP评估记录
笔记·硬件架构·硬件工程·国产芯片
小李不想当小白1 天前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
weixin_448119941 天前
Datawhale Jev Cookbook 202610 笔记3
笔记
姚瑞南1 天前
【PRD】招投标商机雷达爬虫系统
人工智能·经验分享·笔记·爬虫·产品运营·产品经理