软科小院

mysql - 这个数据库合计用 视图做,和直接算好存在数据库里,到时候调用起来哪个快?

热度:7℃ 发布时间:2021-11-12 06:57:56

问题描述

mysql - 这个数据库合计用 视图做,和直接算好存在数据库里,到时候调用起来哪个快?

大家看这个表,其实主科总分,副科总分,总分 都能通过 前面的的数据算出来,

我想问问,要是 不考虑存储空间的情况下,

是把 主科总分,副科总分,总分 在插入数据的时候,就算出来好,
还是 用 VIEW 算好?

这个好的意思,是减少服务器负担,还是搜索速度快.

问题解答

回答1:

从第三范式的角度看,主科总分、副科总分、总分这三列属于依赖于其他列的数据,不应该作为单独的列放到数据库表中。

如果考虑数据读取的压力很大,不想在应用服务器或数据库端再做计算,那么可以按照冗余列的方式存储在表中。在上面所说的场景中,学生的成绩录入后修改的次数应该很少,因此冗余列的更新成本较低,属于典型的读多写少的情况,因此有冗余列总体上服务器的压力会比较低。

回答2:

看你是插入数据多,还是读取结果多;
插入数据时多时就把计算放在视图内,读取数据多时就把sql计算结果放在表里,但读取的压力远远低于插入吧,这个比例还是要权衡下,建议选择放在视图内。

网友评论
评论
发 布

更多常见问答
  • 常见问答推荐
更多+
最新软件下载