Mysql相关知识点
创始人
2025-05-29 23:57:03

范式

三大范式

  • 第一范式(1NF):每个列都不可以再拆分。
  • 第二范式(2NF):在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。
  • 第三范式(3NF):在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。

第一范式

在这里插入图片描述

第二范式

一个表只能描述一件事情。
我们先分析一下表结构。

  1. 假设学号是表中的唯一主键,那由学号就可以确定姓名和年龄了,但是却不能确定课程名称和成绩。

  2. 假设课程名称是表中的唯一主键,那由课程名称就可以确定学分了,但是却不能确定姓名、年龄和成绩。

  3. 虽然通过学号和课程名称的联合主键,可以确定除联合主键外的所有的非主键值,但是基于上述两个假设,也不符合第二范式的要求。

第三范式

在这里插入图片描述在这里插入图片描述

反三大范式

空间换时间

B树以及B+树区别

在这里插入图片描述

在这里插入图片描述
区别:
1.非叶子节点并不存储真正的 data
2.为所有叶子结点增加了一个链指针

聚簇索引和非聚簇索引

非聚簇索引

如果索引值行记录分开存放就属于非聚簇索引。

聚簇索引

B+Tree的叶子节点存放主键索引值行记录就属于聚簇索引。

主键索引和辅助索引

主键索引

B+Tree的叶子节点存放的是主键字段值就属于主键索引;

辅助索引

如果存放的是非主键值 就属于辅助索引(二级索引)。

在InnoDB引擎中,主键索引采用的就是聚簇索引结构存储。

索引类型

普通索引

联合索引

组合索引,区分度高的,查询度高的在前面;
根据where 条件来确定 ; 最左匹配原则

覆盖索引

一个索引包含(或者说覆盖)所有需要查询的字段的值

select * from tableA join (
select a as tempa from tableA where c like '%CDS1606080014%'
) b on tableA.a= b.tempa;

强制索引

force index(indexa,indexb)

强制索引并不会百分百生效,特别是有排序的情况;允许多个,但是不会两个都使用(索引合并)
可以采用union方式来使用多个索引

排序

MySQL可以使用同一个索引满足排序(ORDER BY)和查询(WHERE)操作,因此如果可以,设计索引的时候尽可能考虑同时满足两种任务
前提
只有当索引列顺序和ORDER BY的列顺序完全一致
如果存在表关联,则只有当ORDER BY引用的字段全部为第一个表是,才能使用索引排序
最左前缀
例外
有一种特殊的情况即使不满足最左法则,MySQL也能通过索引来实现排序,如果WHERE或者JOIN中对索引中某些列指定为常量,那么可以弥补这个最左法则!

索引失效

之前的文章已经有了,就不再重述索引失效

相关内容

热门资讯

中外对话丨中外专家警告:日本主...   中新网北京12月15日电 题:中外专家警告:日本主动调整军事战略,或走向穷兵黩武  作者 管娜 ...
夏某某(男,大专学历)隐瞒精神... 转自:扬子晚报2024年参军入伍后在安徽出现精神类障碍被退回,2025年隐瞒病史后入伍再被退兵……1...
告别纸上谈兵!AI 培训找哪个...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:雷达财经)“...
一图读懂vivo S50:田曦...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:快科技)快科...
监管部门出手整治不正当价格行为... 近日,国家市场监督管理总局研究起草了《汽车行业价格行为合规指南(征求意见稿)》(下称《指南》),并向...