前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库设计的一些问题

数据库设计的一些问题

作者头像
张张
发布2019-12-26 16:16:14
4280
发布2019-12-26 16:16:14
举报

char与varchar如何选择

原则:

  1. 如果列中要存储的数据长度差不多一致的,则因该考虑用char;否则因该考虑用varchar。
  2. 如果列中的最大数据长度小于50Byte,则一般也考虑用char。(当然如果这个列很少用,则基于节省空间和减少I/O的考虑,还是可以选择varchar)
  3. 一般不宜定义大于50Byte的char类型列。 decimal与float如何选择

原则:

  1. decimal用于存储精确数据,而float只能用于存储非精确数据。故而精确数据只能选择用decimal类型。
  2. 由于float的存储空间开销一般比decimal小(精确到7位小数只需4个字节,二精确到15位小数只需8个字节)故而非精确数据有限选择float类型。

时间类型如何选择

使用int来存储时间字段的优缺点

  • 优点:字段长度比datetime小。
  • 缺点:使用不方便,要进行函数转换。
  • 限制:只能存储大2038年-1-19 11:14:07即2^32为21474483648 需要存储时间粒度
  • 年月日小时分秒周

如何选择主键

  1. 区分业务主键和数据库主键 业务主键用于标识业务数据,进行表与表之间的关联; 数据库主键为了优化数据存储(InnoDB会生成6个字节的隐含主键)
  2. 跟数据库的类型,考虑主键是否要顺序增长 有些数据库是按主键的顺序逻辑存储的
  3. 主键的字段类型所占空间要尽可能的小 对于使用聚集索引方式存储的表,每个索引后都会附加主键信息。

避免使用外键约束

1.降低数据导入效率。 2.增加维护成本。 3.虽然不建议使用外键约束,但是相关联的列上一定要建立索引

避免使用触发器

1、降低数据导入效率。 2、可能会出现意想不到的数据异常。 3、使业务逻辑变的复杂。

关于预留字段

1、无法准确的知道的预留字段的类型。 2、无法准确的知道预留字段中所存储的内容。 3、后期维护预留字段所要的成本,同增加一个字段所需要的成本是相同的。 4、严禁使用预留字段。

什么是反范式化

反方式化是针对范式化而言的,所谓的反范式化就是为了性能和读取效率的考虑而适当的对第三范式的要求进行违反,而允许存在少量的数据冗余,换句话来说反范式化就是使用空间来换取时间。

为什么反范式化

1、减少表的管理数量 2、增加数据的读取效率 3、反范式化一定要适度

维护和优化中要做什么

1、维护数据字典 2、维护索引 3、维护表结构 4、在适当的时候对表进行水平拆分或垂直拆分

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档