第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在關(guān)系型數(shù)據(jù)庫中頻繁使用 JSON 格式來存儲不需要索引的數(shù)據(jù)好么?

在關(guān)系型數(shù)據(jù)庫中頻繁使用 JSON 格式來存儲不需要索引的數(shù)據(jù)好么?

尚方寶劍之說 2019-04-06 16:57:29
最近在設(shè)計(jì)一些復(fù)雜的MySQL數(shù)據(jù)庫表。碰到一些需要存儲用戶所得成就、用戶所得稱號、用戶消息之類的數(shù)據(jù)的需求。感覺這類數(shù)據(jù)其實(shí)可以直接用JSON格式存儲在user_meta表的text類型字段里。而不需要設(shè)計(jì)過于復(fù)雜的表。當(dāng)然并不是所有數(shù)據(jù)都存儲在一起,可能按照100條數(shù)據(jù)/條記錄的方法。優(yōu)點(diǎn)是:每頁顯示50條用戶數(shù)據(jù)的話,每頁只要讀一次數(shù)據(jù)庫的一條記錄就行了,而不需要遍歷50條記錄。把數(shù)據(jù)庫的壓力分擔(dān)到程序執(zhí)行上,貌似更多情況是數(shù)據(jù)庫壓力過大導(dǎo)致網(wǎng)站掛掉。不需要設(shè)計(jì)復(fù)雜的數(shù)據(jù)庫表,因?yàn)檫@類數(shù)據(jù)的結(jié)構(gòu)可能經(jīng)常變動,用JSON可以在程序中做好處理。但是我不知道這樣設(shè)計(jì)的缺點(diǎn),因?yàn)槲覜]有足夠的經(jīng)驗(yàn)。所以我的問題是:在關(guān)系型數(shù)據(jù)庫中頻繁使用JSON格式來存儲不需要索引的數(shù)據(jù)好么?或者有沒有更好的方案呢?麻煩大家了,謝謝=w=
查看完整描述

2 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個贊

既然不需要索引,這種情況看起來用KeyValue庫更合適一些,比如TC/TT,Bdb,Redis;或者M(jìn)ongoDb這種文檔型數(shù)據(jù)庫也可以(但也有很多設(shè)計(jì)上的坑)。其他理由如下:
1.Mysql庫里慎用text字段,性能不樂觀……
2.一旦需要對這些數(shù)據(jù)進(jìn)行索引或者統(tǒng)計(jì),從MySQL中解出所有的數(shù)據(jù)并重新入庫成本相當(dāng)巨大……
3.大JSON的parse性能同樣不樂觀,而且對于中文數(shù)據(jù),純JSON太占空間了……
4.100條/記錄的存儲方式,如果需要對其中一條進(jìn)行增加/刪除/更新,即需要更新整個100條,更新量比較大;同樣可能會產(chǎn)生并發(fā)問題,需要自行實(shí)現(xiàn)行鎖。一般情況下,如果你用了關(guān)系數(shù)據(jù)庫,不要輕易(為了性能/空間)做違反范式的設(shè)計(jì),除非你有足夠的理由和把握,否則會給未來的維護(hù)升級帶來無盡的麻煩。通常建議:
1.換Key-Value庫/文檔庫(mangodb)
2.或者關(guān)系庫做好緩存和索引優(yōu)化,可以把一個用戶相關(guān)的勛章稱號都緩存在一個key下,這個是經(jīng)過被各大網(wǎng)站驗(yàn)證過無數(shù)遍的設(shè)計(jì)……
                            
查看完整回答
反對 回復(fù) 2019-04-06
  • 2 回答
  • 0 關(guān)注
  • 1452 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號