超过 100 列的表,这样的设计存在什么优缺点?

2018-09-18 11:43:09 +08:00
 nullcoder
业务背景:
需要和硬件每分钟通信,写一次记录。
读取可能是挑其中部分列,列一般不会变,列名会存在另一个表里。
除了 100 个数据列还有识别的字段和时间戳。

感觉至少是不方便用 ORM 来做了,不知道还有什么其他的优缺点,读写性能和存储上的考虑之类。
或者有没有可能的替代方案
4656 次点击
所在节点    数据库
31 条回复
sampeng
2018-09-18 11:55:13 +08:00
你这个需要 nosql。。100 列。。。mysql 之类不是不可以。。就是存储各方面都会变得大。哪怕你留空
kelthuzadzbt
2018-09-18 11:55:23 +08:00
可以存 json 字符串吗,日志表存{pid:v} pid 对应列名在另一个表里的主键 id,100 多列的话;
ps:菜鸟 轻喷
betulachen
2018-09-18 12:17:09 +08:00
换数据库,rrd
nullcoder
2018-09-18 12:20:11 +08:00
@kelthuzadzbt 关系型数据库一般不用这种设计
nullcoder
2018-09-18 12:21:06 +08:00
@betulachen rrd 全称是什么?
hjc4869
2018-09-18 12:30:27 +08:00
数据冗余,浪费空间。
有些情况下性能可能好一些,因为不需要多表查询。不过一般写业务还是尽可能 3NF
hcymk2
2018-09-18 12:51:53 +08:00
可以尝试下时序数据库。
littlewing
2018-09-18 13:04:27 +08:00
nosql 或时序数据库
nullcoder
2018-09-18 13:05:16 +08:00
@hjc4869 数据冗余在哪里?
100 列一个时间戳和一个识别字段还好吧
betulachen
2018-09-18 13:27:40 +08:00
百度 rrd 数据库第一条就是
wingyiu
2018-09-18 13:39:46 +08:00
hbase
reus
2018-09-18 13:53:29 +08:00
postgresql + json 列
关系数据库当然可以这样设计,还能用列内的值创建索引
yejinmo
2018-09-18 13:57:19 +08:00
实时数据库了解下?
ebingtel
2018-09-18 14:05:19 +08:00
我宁愿用 E-A-V 的方式存储,<id、列名、值>
wccc
2018-09-18 14:10:53 +08:00
时序数据库 influxdb 前东家做法
loveCoding
2018-09-18 14:11:40 +08:00
hjc4869
2018-09-18 14:25:21 +08:00
@nullcoder 理解错了, Sorry.
LadyChunsKite
2018-09-18 14:33:53 +08:00
@reus 为什么不用 hstore ?
reus
2018-09-18 16:12:58 +08:00
@LadyChunsKite jsonb 可以完全替代 hstore
nullcoder
2018-09-18 16:47:40 +08:00
@ebingtel 这样缺了时间戳,如果加上冗余量就大了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490383

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX