• 请不要在回答技术问题时复制粘贴 AI 生成的内容
dbpe
V2EX  ›  程序员

请教大家一个数据库涉及问题...

  •  
  •   dbpe · Apr 18, 2018 · 6026 views
    This topic created in 3122 days ago, the information mentioned may be changed or developed.
    众所周知..数据库设计有三大范式.

    我看书之后发现...

    数据量大了..表多了..join 查询效率的就低了..开始设计添加冗余字段...

    那么有木有大佬告诉下咱...大概多少量级就可以考虑了?

    百万级?千万级?
    24 replies  •  2018-04-23 13:52:02 +08:00
    yulitian888
    yulitian888
    Apr 18, 2018
    1
    遇到性能慢了感觉到必须优化了再考虑
    百万千万级的,如果是有索引的查询,根本不慢
    johnny23
    johnny23
    Apr 18, 2018 via iPhone
    2
    坐等大佬分析
    tomczhen
    tomczhen
    Apr 18, 2018 via Android
    3
    OLAP 和 OLTP 要求不一样,反范式是必要的“妥协”。
    lol173
    lol173
    Apr 18, 2018
    4
    数据进入某一个状态后应该使用冗余了保存的,例如已经下单的商品、商品的价格等等,索引要用上,数据大了水平分表也应该用上,统计数据做阶段性统计数据表,略略略就这么多了
    shakoon
    shakoon
    Apr 18, 2018
    5
    量级和服务器性能有关,破机器百万级就很慢了,好机器上亿条也能秒级处理。另外我觉得首先是考虑表分区啊,建什么冗余字段
    projectzoo
    projectzoo
    Apr 18, 2018
    6
    百万千万现在一般机器都很好吧
    自己实测一下不就好咯?
    quickma
    quickma
    Apr 18, 2018
    7
    冗余字段的设计是有道理的,或许有时候水平分库就是错误的区分
    whypool
    whypool
    Apr 18, 2018
    8
    同问
    不用冗余字段,查询需要 join 多个表,有些数据生成了修改的可能性很小,如果弄到一个表去,一个 select 就出数据了

    所以,是严格按照范式设计表么?
    Hozzz
    Hozzz
    Apr 18, 2018
    9
    看预期值了,你要是一条 sql 进去,10 秒出来能接受,那就没必要考虑这些;要是 1 秒都不能接受,那就可以考虑怎么优化了。
    dbpe
    dbpe
    OP
    Apr 18, 2018
    10
    @lol173 那我大概明白,那些结构的表需要冗余字段,而那些不需要了...

    PS:emmm..感觉性能制胜论很多啊...压榨机器的性能不应该是程序员的浪漫么?
    dbpe
    dbpe
    OP
    Apr 18, 2018
    11
    上面表述不清楚,应该是机器性能制胜论
    Cbdy
    Cbdy
    Apr 18, 2018 via Android
    12
    范式只是一种设计模式,有优点也有缺点,反范式也有优点和缺点,设计的时候要权衡一下
    hcymk2
    hcymk2
    Apr 18, 2018
    13
    冗余字段其实有另外的一个问题, 你得保证你的冗余字段值的正确。
    weizhen199
    weizhen199
    Apr 18, 2018
    14
    冗余和索引有点类似的。
    牺牲删改时间换查询时间
    这东西说实话挺经验的,和模电一样毛估估
    csl1995
    csl1995
    Apr 18, 2018
    15
    索引优化、缓存技术、搜索引擎、优化 sql、硬件之后依然有性能瓶颈时再进行
    akira
    akira
    Apr 18, 2018
    16
    上班第一天,先把范式设计忘掉
    dbpe
    dbpe
    OP
    Apr 18, 2018
    17
    @akira 哈哈..这倒是..一张表..三个字段是相通的...分别指向不同的表(貌似还没有外键约束..全靠人肉约束)
    dbpe
    dbpe
    OP
    Apr 18, 2018
    18
    @hcymk2 emmm 不能用外键进行约束么?
    dbpe
    dbpe
    OP
    Apr 18, 2018
    19
    @weizhen199 还有一点..用空间换时间...
    Miy4mori
    Miy4mori
    Apr 18, 2018
    20
    维护冗余字段的代价有点
    Dawnki
    Dawnki
    Apr 19, 2018 via iPhone
    21
    看看《高性能 Mysql 》吧,有时追求性能确实要牺牲一些约束和范式的
    Dawnki
    Dawnki
    Apr 19, 2018 via iPhone
    22
    不过优化这东西是一步一步来的,遇到慢查询时才需要另辟蹊径,一开始不要过于看重优化.
    dbpe
    dbpe
    OP
    Apr 23, 2018 via Android
    23
    @Miy4mori 有点啥?大?
    dbpe
    dbpe
    OP
    Apr 23, 2018 via Android
    24
    @Dawnki 只是想一步到位。。如果业务数据达不到那个量级就不考虑了。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5441 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 02:00 · PVG 10:00 · LAX 18:00 · JFK 21:00
    ♥ Do have faith in what you're doing.