Mysql基础

80 阅读1分钟

三大范式

1.第一范式:数据库表的所有字段不可再拆分

2.第二范式:在第一范式的基础上,满足所有的非主属性必须依赖主键

3.第三范式:在第二范式的基础上,满足所有的非主属性不能互相依赖

反范式

为了提升性能,通常需要打破三大范式,这就是反范式

1.slot槽提升更新性能

2.字段冗余提升查询性能

数据类型

1.整型:tinyint, smallint, middiumint, int, bigint

2.小数类型:float, doouble, decimal

3.字符串:char, varchar, text, longtext, blob, longblob, enum

4.时间:datetime, timestamp

1.二叉树

只有两路,极端情况下可能会变成一条直线

2.平衡二叉树

左右子树的高度差绝对值不超过1

3.多路平衡二叉树

降低树的深度,提升性能

4.B+树

只有叶子节点存储数据,每个节点之间用指针连接,mysql的B+树做了优化,叶子节点由双向链表构成

5.B*树

非叶子节点的索引之间也有指针连接

mysql为什么使用B+树

只有叶子节点存储数据,并且是连续的,方便范围查找,减少IO次数