成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

啥,又要為表增加一列屬性?

開發 開發工具
今天分享2個列擴展性設計上幾個小技巧,只占大伙1分鐘。

需求緣起

產品***版:用戶有用戶名、密碼、昵稱等三個屬性,對應表設計:

user(uid, name, passwd, nick)

第二版,產品經理增加了年齡,性別兩個屬性,表結構可能要變成:

user(uid, name, passwd, nick, age, sex)

假設數據量和并發量比較大,怎么變?

(1)alter table add column?不太可行,鎖表時間長

(2)新表+觸發器?如果數據量太大,新表不一定裝得下,何況觸發器對數據庫性能的影響比較高

(3)讓dba來搞?新表,遷移數據,一致性校驗,rename?dba真苦逼

今天分享2個列擴展性設計上幾個小技巧,只占大伙1分鐘(下班太晚的話,只能寫一分鐘系列=_=)

[[179110]]

方案一:版本號+通用列

以上面的用戶表為例,假設只有uid和name上有查詢需求,表可以設計為

user(uid, name, version, ext)

(1)uid和name有查詢需求,必須設計為單獨的列并建立索引

(2)version是版本號字段,它對ext進行了版本解釋

(3)ext采用可擴展的字符串協議載體,承載被查詢的屬性

例如,最開始上線的時候,版本為0,此時只有passwd和nick兩個屬性,那么數據為:

只有passwd和nick兩個屬性的數據

當產品經理需要擴展屬性時,新數據將版本變為1,此時新增了age和sex兩個數據,數據變為:

新增了age和sex兩個數據的數據

優點:

 

(1)可以隨時動態擴展屬性

(2)新舊兩種數據可以同時存在

(3)遷移數據方便,寫個小程序將舊版本ext的改為新版本的ext,并修改version

不足:

(1)ext里的字段無法建立索引

(2)ext里的key值有大量冗余,建議key短一些

改進:

(1)如果ext里的屬性有索引需求,可能Nosql的如MongoDB會更適合

方案二:通過擴展行的方式來擴展屬性

以上面的用戶表為例,可以設計為

user(uid, key, value)

初期有name, passwd, nick三個屬性,那么數據為:

初期有name, passwd, nick三個屬性的數據

未來擴展了age和sex兩個屬性,數據變為:

擴展了age和sex兩個屬性,數據變為

優點:

 

(1)可以隨時動態擴展屬性

(2)新舊兩種數據可以同時存在

(3)遷移數據方便,寫個小程序可以將新增的屬性加上

(4)各個屬性上都可以查詢

不足:

(1)key值有大量冗余,建議key短一些

(2)本來一條記錄很多屬性,會變成多條記錄,行數會增加很多

總結

可以通過“version+ext”或者“key+value”的方式來滿足產品新增列的需求,希望沒有浪費你這一分鐘,有收獲就好。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

責任編輯:趙寧寧 來源: 架構師之路
相關推薦

2016-12-16 19:06:02

擴展數據庫架構

2024-06-20 08:03:35

MySQL數據表版本

2024-08-05 10:13:59

MySQL大數據優化

2021-01-21 15:44:03

vlookup函數數據區域Match函數

2010-10-27 13:16:41

oracle并行查詢

2010-09-28 09:49:48

SQL字符串

2017-07-04 11:02:40

Oracle新列分區

2009-07-28 08:36:45

TemplateFie

2010-09-10 13:37:59

SQLCOUNT()函數

2015-07-20 17:17:41

SQL Server

2013-01-29 10:41:58

Java復用HTTP

2016-05-13 16:15:05

CDN/星域CDN

2022-08-29 08:00:11

哈希表數組存儲桶

2010-11-16 11:32:54

ORACLE增加表空間

2009-10-26 13:46:31

VB.NET注冊表權限

2012-12-24 13:46:14

超算10億億次Xeon Phi

2020-10-14 11:12:33

TikTok谷歌禁令

2021-12-22 09:01:23

PythonExcelPython基礎

2019-09-12 08:03:56

MySQL索引數據庫

2019-09-12 14:47:31

TCPUDP端口
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男人的天堂中文字幕 | 国产欧美在线播放 | 亚洲一一在线 | 中文字幕 视频一区 | 国产精品久久久久久238 | aaaaaaa片毛片免费观看 | 国产精品久久久久久久久久久久久 | av天天干 | 精品久久成人 | 成人深夜小视频 | 91九色在线观看 | 国产aa| 一区二区三区四区不卡视频 | www.中文字幕.com | 国产精品亚洲一区二区三区在线 | 一本一道久久a久久精品蜜桃 | 日韩中文字幕 | 久久国产精品免费 | 日本一区二区在线视频 | 欧美性受xxx | 午夜电影网 | 国产一区91精品张津瑜 | 91久久精品日日躁夜夜躁国产 | 国产日韩视频在线 | 免费观看羞羞视频网站 | 国产精品久久久久久久久免费高清 | 日韩成人一区二区 | 久久精品国产久精国产 | 久久av网站| 久久国产一区二区 | 中文字幕精品一区二区三区精品 | 欧美精品一二三 | 一级黄在线观看 | 亚洲一区二区电影在线观看 | 一区二区三区免费 | 日本韩国欧美在线观看 | 婷婷色婷婷 | 干干干操操操 | 日韩中文字幕一区 | 日韩不卡视频在线观看 | 91精品国产综合久久久久久蜜臀 |