标签:关联表 表数 日志 目的 成本 archive 没有 计算 表达式
一,关系数据库三大范式
第一范式要求每一列都不可再分,即要满足原子性,这也是关系数据库设计中最基本都要求。第二范式是在它基础上要求所有非主键列都要完全依赖主键列,而不能只依赖部分主键列(若有此情况,应该拆分表)。第三范式是在第二范式基础上要求所有非主键列都必须要直接依赖主键列,而不是依赖某非主键列进而间接依赖主键列,比如用户表有用户id、用户名、组织id、组织名称字段时就不满足第三范式,因为组织名称是直接依赖组织id的。不过实际在关系数据库表设计时为了减少关联表查询都会采用这种冗余设计。
二、数据库表连间的连接关系
常见的数据库表间连接关系分为内连接、外连接、左(右)外连接、交叉连接几种。其中内连接返回两个表中满足条件的记录,外连接(全外连接)返回两个表中所有记录(包括满足条件的记录,其它左边表记录+右边表字段为空,其它右边表记录+左边表字段为空),左外连接以左边表为准,返回所有左边表记录(右边表不存在关联记录的返回空),交叉连接是返回两边记录的乘积。
三、数据库索引概念及注意事项
数据库索引目的是为了增加记录的查询排序效率,避免全表扫描提升效率,尤其是在表数据多情况下,正确使用索引能极大提高数据库的查询效率。通常数据库索引使用B+树结构,其它类似常用的索引结构有Hash索引、LSM树索引。
从记录顺序与物理磁盘顺序是否一致的角度看索引分为聚簇索引和非聚簇索引。聚簇索引是指索引记录顺序与物理记录顺序一致,查询效率更高,更适用于区间记录查询,每个表只能建一个聚簇索引,默认在建表主键时会把它设置为聚簇索引(如果要设置其它列为聚簇索引,要在指定主键前设置)。
常见索引分类有普通索引(常见的索引)、唯一索引(列值唯一的索引,允许空值)、主键索引(特殊的唯一索引)、单例索引、联合索引。使用索引有以下注意事项:
哪些情况需要建索引:
1 主键,唯一索引
2 经常用作查询条件的字段需要创建索引
3 经常需要排序、分组和统计的字段需要建立索引
4 查询中与其他表关联的字段,外键关系建立索引哪些情况不要建索引:
1 表的记录太少,百万级以下的数据不需要创建索引
2 经常增删改的表不需要创建索引
3 数据重复且分布平均的字段不需要创建索引,如 true,false 之类。
4 频发更新的字段不适合创建索引
5 where条件里用不到的字段不需要创建索引
四、关系数据库表中不应存的三类值
标签:关联表 表数 日志 目的 成本 archive 没有 计算 表达式
原文地址:https://www.cnblogs.com/doit8791/p/9005153.html