数据库设计总结(面试官都馋哭了)

举报
负债程序猿 发表于 2022/02/19 00:07:13 2022/02/19
【摘要】 文章目录 前言一、合理设置字段二、合理设计表结构三、合理利用索引 前言 简单粗暴,我的爱好 一、合理设置字段 在设计表是有个原则,在保证业务的基础上让字段尽可能小,能用INT就...


前言

简单粗暴,我的爱好


一、合理设置字段

在设计表是有个原则,在保证业务的基础上让字段尽可能小,能用INT就别用BIGINT,因为mysql的innoDB引擎索引结构是B+树,它的非叶子节点保存的是索引和指针,节点容量是固定的(16k),指针大小也是固定的(6字节),所以索引占用字节越少,就能让b+树的节点保存更多元素;

还有就是字段尽量设置成NOT NULL,这样mysql在检索数据的时候就会少做NULL判断,从而更好地发挥索引效果。

二、合理设计表结构

其实就是三范式:
第一范式:属性(字段)的原子性约束,要求属性具有原子性,不可再分割;
比如个人信息,个人信息不能作为一个字段,它可以再分为name、age、sex等;

第二范式:记录的惟一性约束,要求记录有惟一标识,每条记录需要有一个属性来做为实体的唯一标识;

第三范式:字段冗余性的约束,即任何字段不能由其他字段派生出来;主键没有直接关系的数据列必须消除,消除的办法就是再创建一个表来存放他们,当然外键除外;

当然,三范式只是一个规范,实际生产中不一定必须遵循
比如公司资产清点表:名称、单价、数量、总价;
这是违背了第三范式的,因为总价可以通过单价*数量得出
但是像这种结构我们是可以接受的,如果需要直接查询总价,就不用再单独计算,只是多了一个字段而已;

三、合理利用索引

索引虽然能大幅度提升查询效率,但是也有副作用:
1、额外增加索引文件;
2、读虽然快了,但是写会变慢;

注意事项
索引字段应尽可能的小,尤其是主键;
如果有组合索引,注意最左匹配原则;
针对长字符串型字段,尽量用前缀索引;
如果有二级索引,注意避免回表查询;

文章来源: huangjie.blog.csdn.net,作者:负债程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:huangjie.blog.csdn.net/article/details/108279779

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。