如何选择主键
1.区分业务主键和数据库主键
业务主键用于标识业务数据,进行表与表之间的关联。
数据库主键为了优化数据存储
2.根据数据库的类型,考虑主键是否要顺序增长
有些数据库是按主键的顺序逻辑存储的
3.主键的字段类型所占用空间要尽可能的小
对于使用聚集索引方式的存储的表,每个索引后都会附加主键的信息
避免使用外键约束
1.降低数据导入的效率
2.增加维护成本
3.虽然不建议使用外键约束,但是相关联的列上一定要建立索引。
避免使用触发器
1.降低数据导入的效率
2.可能会出现意想不到的数据异常
3.使业务逻辑变的复杂。
关于预留字段
1.无法准确的知道预留字段的类型
2.无法准确的知道预留字段中所存储的内容
3.严禁使用预留字段
关于预留字段(预见性的避免修改数据库表机构,严禁使用):
1、无法准确知道预留字段的类型;
2、无法准确知道预留字段存储的内容;
3、增加维护成本;
4、严禁使用预留字段。
避免使用触发器(before,after)
1、降低数据导入的效率;
2、可能出现意想不到的数据异常;
3、使业务逻辑变复杂;
外键:(保持数据完整性)避免使用外键约束
1、降低数据导入效率;
2、增加维护成本;
3、相关联的列上一定要建立索引;
主键选择:
1、业务主键(标识业务数据进行表关联)和数据库主键(优化数据存储(隐含主键))
2、主键最好顺序增长(比如:ID)
3、主键的字段类型所占空间要尽可能小。
其他注意事项
如何选择主键:区分业务主键和数据库主键、根据数据库类型考虑主键是否要顺序增长、主键字段类型所占空间要尽可能的小
避免使用外键约束:会降低数据导入效率、增加维护成本,在相关联的列上一定要建立索引
避免使用触发器:会降低数据导入效率、出现意想不到的数据异常、是业务逻辑变得复杂
严禁使用预留字段
关于预留字段
避免使用触发器
避免使用外键约束
如何选择主键
关于预留字段
无法准确的知道预留字段的类型。
无法准确的知道预留字段中所存储的内容。
后期维护预留字段索要的成本,和增加一个字段所需要的成本时相同的。
严禁使用预留字段。
避免使用触发器的原因:
降低数据导入的效率。
可能会出现意想不到的数据异常。
时业务逻辑变得复杂。
避免使用外键约束的原因:
降低数据导入的效率。
降低维护成本。
虽然不建议使用外键约束,但是相关联的列上一定哟啊简历索引。
如何选择主键?
区分业务主键和数据库主键
业务主键那用于标识业务数据,进行标语表之间的关联;
数据库主键为了优化数据存储(Innodb会生成6个字节的隐含主键,尽量人为创建主键)
根据数据库的类型,考虑主键是否要顺序增长?
有些数据库时按主键的顺序逻辑存储的。
主键的字段类型所占空间要尽可能的小
对于使用聚集索引方式存储的表,每个索引后都会附加主键信息。
高并发的场景,尽量不要使用外键,因为每次插入都会检查一下是否符合外键约束。
关联列上一定要建立索引。(这个怎么操作呢)
Innodb会生成6个字节的隐含主键,但还是建议自己设置
1.业务主键用于表示业务数据
数据库主键用于优化数据存储
innodb是按照主键的逻辑顺序存储的
2 外键在每次插入入的时候都会检查是否符合外键的约束,检查外键约束的过程是很耗时间的,尽量少使用外键约束去保证数据一致性
相关联的列上一定要建立索引
3 触发器 避免使用 少用
4 禁止使用预留字段
避免使用外键约束
如何选择主键
严禁使用预留字段
避免使用触发器
避免使用外键约束,但是相关联的列上一定药建立索引
如何选择主键
关于预留字段
避免使用触发器
避免使用外键约束
如何选择主键