This topic created in 933 days ago, the information mentioned may be changed or developed.
比如一个互联网应用,比如 V2EX ,知乎,stackoverflow 这种网站,需要的功能是类似的,而且数据主要是文本数据。
这个时候,应该用哪些数据库,数据库中用什么表,或者什么结构,每个表里面应该有哪些些字段,在互联网已经发展了这么多年的情况下,是不是应该有一个最优的系统设计,对于文本内容为主的论坛类网站(比如 V2EX ,知乎,贴吧等)能够满足使用尽量少的硬件资源,并且性能出色可拓展性好
这种问题比较偏工程吧,找了一圈也没找到相关内容,请教一下 v 站的大佬们
11 replies 2024-02-12 07:48:10 +08:00  | | 1 go522000 Nov 18, 2023 1 曾经也找过,没有。 最后只找到一本已经不再出版的书《 SQL 反模式》 |
 | | 3 xiaoriri666 Nov 18, 2023 这属于系统架构层面了,一个领域的相关解决方案,还得实际需求实际分析 |
 | | 4 kamichan Nov 18, 2023 相似的底层系统可以,业务系统很多都不同 |
 | | 5 R4rvZ6agNVWr56V0 Nov 18, 2023 就是 2NF\3NF 规范合理根据业务使用,不需要学术课本那么教条。 其他就是分库分表、高可用等 DB 维护问题。不同技术栈和架构在工程上很多细节要根据具体的案例来分析了,没法总结个标准。 |
 | | 6 dayeye2006199 Nov 19, 2023 一个流派就是经典的关系型数据库设计 -- 上面说的 2NF 3NF 一个流派就是阿里代表的,数据库只做存储功能的一把梭流派 -- 什么从不用外键,不能 join 之类的技巧都是从这边来的 |
 | | 7 kuituosi Nov 19, 2023 数据量小就是 3nf ,数据量大就冗余。至于最优没有什么事最优的,换一个公司换一个需求就不是最优了 |
 | | 8 veike Nov 19, 2023 我个人认为,如果把范式设计和反范式设计放在一起就是没有范式,只是一些数据库设计技巧罢了,根据实际情况设计就可以。 |
 | | 9 datoujiejie221 Nov 20, 2023 可以看看著名的 CAP 定理,分布式系统下数据的一致性、可用性和分区容忍性不可能同时满足,所以要根据具体业务来做出权衡。 互联网业务对 AP 要求较高,所以用反范式牺牲了一致性( C )。 |
 | | 10 nodejsexpress Nov 20, 2023 应该没有最佳的。根据具体业务折腾开源库,或者商业数据库。
不满足的情况下,有研发能力就自己魔改,牛的就自己开发一个数据库。比如 GraphQL fb 倒腾出来。 |