这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记。
因为我们选择的是第二个项目,对于大数据的处理就需要设计好关系型数据库,多利用非关系型数据库来对数据进行缓存。我们使用了悟空数据集(亿级图文对数据集),打开文件一看,发现只有url和caption两个字段,为了加快搜索速度,我们添加了一个字段id,并设置为主键。刚开头我担心数据集太大,使用int类型过于小,所以使用了bigint,经过几天的测试发现,bigint和int的搜索速度还是有区别的,因为考虑搜索速度和int类型的范围在21亿左右的原因,我们将字段id的数据类型改为int,这样加快了data表的搜索速度
我了解了数据库设计的重要性,良好的数据库设计过程可以节约很多时间
我认为比较重要的三点:
需求分析 :分析用户的需求,包括数据、功能需求
概念结构设计:主要采用 E-R模型 进行设计,包括画E-R图
逻辑结构设计 :通过将 E-R图 转换成表,实现从 E-R模型 到 关系模型 的转换
设计好每一个字段,考虑好字段长度,尽可能做到一步到位,减少多次修改的可能(因为可能改完字段类型和长度也要顺便改一下项目代码实体类属性字段)
在设计表时:
1、 数据库表命名,将实体类和基础表区分,采用驼峰表示法等。
2、 数据不要物理删除(格式化),应该加一个标志位,以防用户后悔时,能够恢复。
总之设计一个完善的数据库设计是不可能一蹴而就的,它要经过多次测试和思考。