mysql 规范笔记

1. 设计数据库范式

* 概念:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求
	设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
	目前关系数据库有六种范式,主要使用的是前三种:

1NF.表内的每一个值只能被表达一次 

2NF.表内的每一行都应当被唯一的标示 

3NF.表内不应该存储依赖于其他键的非键信息

2. 建库建表规范

1.数据库使用utf8mb4字符集,数据库排序规则使用utf8mb4_general_ci

2.表中的第一个id字段,一定是主键且为自动增长,禁止在非事务内作为上下文作为条件进行数据传递。禁止使用varchar类型作为主键语句设计。

3.表必须包含create_time和modify_time字段,即表必须包含记录创建时间和修改时间的字段

4.表必须包含is_del,用来标示数据是否被删除,原则上数据库数据不允许物理删除。

5.数据库,表,字段,索引全部用小写英文字母,英文单词之间用下划线(_)隔开。

6.为了统一规范,库名、表名、字段名使用小写字母。

7.表名,一律使用前缀,如有模块,需采用:模块_+功能点,一般不超过三个英文单词:
	正式表:以t_为前缀,采用模块_+功能点  
	示例:t_alllive_log   t_alllive_category
	
	临时表:以tmp_为前缀,并以日期为后缀
	备份表:以bak_为前缀,并以日期为后缀

例如:

表名: t_name

  • 在数据库中,字段:first_name

  • 在实体类中,字段:firstName

  • 每个字段需要有备注

3.索引

1.如果字段与其它表的关键字相关联,而未设计为外键引用的

2.如果字段需做模糊查询之外的条件查询

3.除了主关键字允许建立簇索引外,其它字段所建索引必须为非簇索引

1.普通索引: 必须按照 “index_表名_字段名” 进行命名
2.唯一索引: 必须按照 “unique_表名_字段名” 进行命名

 单张表:索引数量不超过5个
 单个索引:字段数不超过5个
 
 InnoDB的secondary index使用b+tree来存储,因此在UPDATE、DELETE、INSERT的时候,
 需要对b+tree进行调整过多的索引会减慢更新的速度

4.查询

避免使用大表的JOIN

MySQL最擅长的是单表的主键/二级索引查询
JOIN消耗较多内存,产生临时表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值