请教大家一个数据库涉及问题... - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容 #Wrapper { background-color: #e2e2e2; background-image: url("/static/img/shadow_light.png"), url("//cdn.v2ex.com/assets/bgs/circuit.png"); background-repeat: repeat-x, repeat-x; } #Wrapper.Night { background-color: #1f2e3d; background-image: url("/static/img/shadow.png"), url("//cdn.v2ex.com/assets/bgs/circuit_night.png"); background-repeat: repeat-x, repeat-x; background-size: 20px 20px, 162.5px 162.5px; }
dbpe
V2EX    程序员

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

  •  
  •   dbpe 2018-04-18 08:32:11 +08:00 5094 次点击
    这是一个创建于 2734 天前的主题,其中的信息可能已经有所发展或是发生改变。
    众所周知..数据库设计有三大范式.

    我看书之后发现...

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

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

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

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

    PS:emmm..感觉性能制胜论很多啊...压榨机器的性能不应该是程序员的浪漫么?
    dbpe
        11
    dbpe  
    OP
       2018-04-18 13:53:26 +08:00
    上面表述不清楚,应该是机器性能制胜论
    Cbdy
        12
    Cbdy  
       2018-04-18 14:20:11 +08:00 via Android
    范式只是一种设计模式,有优点也有缺点,反范式也有优点和缺点,设计的时候要权衡一下
    hcymk2
        13
    hcymk2  
       2018-04-18 14:32:42 +08:00
    冗余字段其实有另外的一个问题, 你得保证你的冗余字段值的正确。
    weizhen199
        14
    weizhen199  
       2018-04-18 14:33:02 +08:00
    冗余和索引有点类似的。
    牺牲删改时间换查询时间
    这东西说实话挺经验的,和模电一样毛估估
    csl1995
        15
    csl1995  
       2018-04-18 16:42:25 +08:00
    索引优化、缓存技术、搜索引擎、优化 sql、硬件之后依然有性能瓶颈时再进行
    akira
        16
    akira  
       2018-04-18 16:48:57 +08:00
    上班第一天,先把范式设计忘掉
    dbpe
        17
    dbpe  
    OP
       2018-04-18 16:58:52 +08:00
    @akira 哈哈..这倒是..一张表..三个字段是相通的...分别指向不同的表(貌似还没有外键约束..全靠人肉约束)
    dbpe
        18
    dbpe  
    OP
       2018-04-18 16:59:18 +08:00
    @hcymk2 emmm 不能用外键进行约束么?
    dbpe
        19
    dbpe  
    OP
       2018-04-18 17:01:18 +08:00
    @weizhen199 还有一点..用空间换时间...
    Miy4mori
        20
    Miy4mori  
       2018-04-18 18:22:25 +08:00
    维护冗余字段的代价有点
    Dawnki
        21
    Dawnki  
       2018-04-19 00:58:53 +08:00 via iPhone
    看看《高性能 Mysql 》吧,有时追求性能确实要牺牲一些约束和范式的
    Dawnki
        22
    Dawnki  
       2018-04-19 01:01:15 +08:00 via iPhone
    不过优化这东西是一步一步来的,遇到慢查询时才需要另辟蹊径,一开始不要过于看重优化.
    dbpe
        23
    dbpe  
    OP
       2018-04-23 13:50:59 +08:00 via Android
    @Miy4mori 有点啥?大?
    dbpe
        24
    dbpe  
    OP
       2018-04-23 13:52:02 +08:00 via Android
    @Dawnki 只是想一步到位。。如果业务数据达不到那个量级就不考虑了。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2774 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 12:33 PVG 20:33 LAX 05:33 JFK 08:33
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86