获得徽章 0
#挑战每日一条沸点#
索引介绍
MYSQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,所以说索引的本质是:数据结构。
索引的目的在于提高查询效率,可以类比字典、 火车站的车次表、图书的目录等 。
简单理解为“排好序的快速查找的数据结构”。数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
索引本身也很大,不可能全部存储在内存中,一般以索引文件的形式存储在磁盘上
平常说的索引,没有特别指明的话,就是B+树(多路搜索树,不一定是二叉树)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。此外还有哈希索引等。
索引介绍
MYSQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,所以说索引的本质是:数据结构。
索引的目的在于提高查询效率,可以类比字典、 火车站的车次表、图书的目录等 。
简单理解为“排好序的快速查找的数据结构”。数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
索引本身也很大,不可能全部存储在内存中,一般以索引文件的形式存储在磁盘上
平常说的索引,没有特别指明的话,就是B+树(多路搜索树,不一定是二叉树)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。此外还有哈希索引等。
展开
评论
点赞
#挑战每日一条沸点#
索引介绍
MYSQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,所以说索引的本质是:数据结构。
索引的目的在于提高查询效率,可以类比字典、 火车站的车次表、图书的目录等 。
简单理解为“排好序的快速查找的数据结构”。数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
索引本身也很大,不可能全部存储在内存中,一般以索引文件的形式存储在磁盘上
平常说的索引,没有特别指明的话,就是B+树(多路搜索树,不一定是二叉树)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。此外还有哈希索引等。
索引介绍
MYSQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,所以说索引的本质是:数据结构。
索引的目的在于提高查询效率,可以类比字典、 火车站的车次表、图书的目录等 。
简单理解为“排好序的快速查找的数据结构”。数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
索引本身也很大,不可能全部存储在内存中,一般以索引文件的形式存储在磁盘上
平常说的索引,没有特别指明的话,就是B+树(多路搜索树,不一定是二叉树)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。此外还有哈希索引等。
展开
评论
点赞
#挑战每日一条沸点#
数据库三大范式
第一范式(确保表中每列保持原子性)
数据库表中的字段都是单一属性的,不可再分;
这个单一属性有基本类型过程,包括:整型、字符型、逻辑型、日期等;
例如 “地址” 这个属性,如果业务上还可以细分,如拆分为省市区等,那就必须细分,否则不符合第一范式;
第二范式(确保表中每列都和主键列相关)
| 在第一范式的基础上,数据表的每一列(主键除外)都需要和主键相关,而且不能只与主键的一部分相关(联合主键的个别字段相关);也就是说在一个数据表中,只能保存一种数据。
数据库表中不存在非关键字段对任一候选关键字的部分函数依赖,即所有非关键字段都完全依赖于任意一组候选关键字;
部分函数依赖指的是存在组合关键字中某些字段觉得非关键字的情况;
第三范式(确保表中每列都和主键列直接相关,而不是间接相关/传递依赖)
| 在第二范式的基础上,第三范式是确保每列都和主键列直接相关,而不是间接相关,即限制列的冗余性。如果一个关系满足第二范式,并且除了主键以外的其他列都依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式。
在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式;
传递函数依赖,指的是如果存在“A->B->C”的决定关系,则C传递函数依赖A。
满足第三范式的数据库表不应存在传递依赖关系:关键字段 -> 非关键字段X -> 非关键字段Y;
数据库三大范式
第一范式(确保表中每列保持原子性)
数据库表中的字段都是单一属性的,不可再分;
这个单一属性有基本类型过程,包括:整型、字符型、逻辑型、日期等;
例如 “地址” 这个属性,如果业务上还可以细分,如拆分为省市区等,那就必须细分,否则不符合第一范式;
第二范式(确保表中每列都和主键列相关)
| 在第一范式的基础上,数据表的每一列(主键除外)都需要和主键相关,而且不能只与主键的一部分相关(联合主键的个别字段相关);也就是说在一个数据表中,只能保存一种数据。
数据库表中不存在非关键字段对任一候选关键字的部分函数依赖,即所有非关键字段都完全依赖于任意一组候选关键字;
部分函数依赖指的是存在组合关键字中某些字段觉得非关键字的情况;
第三范式(确保表中每列都和主键列直接相关,而不是间接相关/传递依赖)
| 在第二范式的基础上,第三范式是确保每列都和主键列直接相关,而不是间接相关,即限制列的冗余性。如果一个关系满足第二范式,并且除了主键以外的其他列都依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式。
在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式;
传递函数依赖,指的是如果存在“A->B->C”的决定关系,则C传递函数依赖A。
满足第三范式的数据库表不应存在传递依赖关系:关键字段 -> 非关键字段X -> 非关键字段Y;
展开
评论
点赞