中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁(yè) > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > 數(shù)據(jù)庫(kù)性能優(yōu)化之冗余字段的作用
18個(gè)超棒的Web和移動(dòng)應(yīng)用開(kāi)發(fā)框架 回到列表 讓不固定個(gè)數(shù)的子元素自適應(yīng)居中
 數(shù)據(jù)庫(kù)性能優(yōu)化之冗余字段的作用

作者:yoom 時(shí)間: 2011-03-01 文檔類型:原創(chuàng) 來(lái)自:藍(lán)色理想

什么是冗余字段?

在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),某一字段屬于一個(gè)表,但它又同時(shí)出現(xiàn)在另一個(gè)或多個(gè)表,且完全等同于它在其本來(lái)所屬表的意義表示,那么這個(gè)字段就是一個(gè)冗余字段。

——以上是我自己給出的定義

冗余字段的存在到底是好還是壞呢?這是一個(gè)不好說(shuō)的問(wèn)題。可能在有人看來(lái),這是一個(gè)很蹩腳的數(shù)據(jù)庫(kù)設(shè)計(jì)。因?yàn)樵跀?shù)據(jù)庫(kù)設(shè)計(jì)領(lǐng)域,有一個(gè)被大家奉為圭臬的數(shù)據(jù)庫(kù)設(shè)計(jì)范式,這個(gè)范式理論上要求數(shù)據(jù)庫(kù)設(shè)計(jì)邏輯清晰、關(guān)系明確,比如,”用戶昵稱”字段”nickname”本來(lái)屬于表”user”,那么,表示”用戶昵稱”的字段就唯一的只應(yīng)該屬于”user”表的”nickname”字段,這樣,當(dāng)用戶要修改昵稱的時(shí)候,程序就只需要修改 user.nickname這個(gè)字段就行了,瞧,很方便。不過(guò)問(wèn)題也隨之而來(lái),我在其他數(shù)據(jù)表(如訂單orders表)里只存儲(chǔ)了用戶的ID,我要通過(guò)這個(gè)ID值得到用戶昵稱該怎么辦呢?一個(gè)普遍的解決方法是通過(guò)聯(lián)接(join),在查詢時(shí),通過(guò)id這個(gè)唯一條件聯(lián)接兩個(gè)表,從而取到用戶的昵稱。

這樣確實(shí)是沒(méi)問(wèn)題,我也一直覺(jué)得這樣是最好的方案,擴(kuò)展方便,當(dāng)要更新用戶信息時(shí),程序中要修改的地方很少,但是隨著數(shù)據(jù)庫(kù)里數(shù)據(jù)不斷增加,百萬(wàn),千萬(wàn),同時(shí),用戶表的數(shù)據(jù)肯定也在不斷的增加的,它可能是十萬(wàn),百萬(wàn)。這個(gè)時(shí)候,你會(huì)發(fā)現(xiàn)兩個(gè)表通過(guò)聯(lián)接來(lái)取數(shù)據(jù)就顯得相當(dāng)費(fèi)力了,可能你只需要取一個(gè)nickname這個(gè)用戶昵稱屬性,你就不得不去聯(lián)一下那個(gè)已經(jīng)幾十萬(wàn)的用戶表進(jìn)行檢索,其速度可想而知了。

這個(gè)時(shí)候,你可以嘗試把nickname這個(gè)字段加到orders這個(gè)訂單表中,這樣做的好事是,當(dāng)你要通過(guò)訂單表呈現(xiàn)一個(gè)訂單列表時(shí),涉及用戶的部分可能就不需要再進(jìn)行聯(lián)接查詢了。當(dāng)然,有利就有弊,這樣做的弊端就是,當(dāng)你嘗試更新用戶信息時(shí),你必須記得用戶信息表里當(dāng)前被更新的字段中,有哪些是冗余字段,分別屬于哪些表,找到他們,然后加入到你的更新程序段中來(lái)。這個(gè)是程序中的開(kāi)銷,開(kāi)銷在開(kāi)發(fā)人員的時(shí)間上了。至于這樣做是否值得,就得看具體情況而定了。

所以,目前要?jiǎng)?chuàng)建一個(gè)關(guān)系型數(shù)據(jù)庫(kù)設(shè)計(jì),我們有兩種選擇:

  1. 盡量遵循范式理論的規(guī)約,盡可能少的冗余字段,讓數(shù)據(jù)庫(kù)設(shè)計(jì)看起來(lái)精致、優(yōu)雅、讓人心醉。
  2. 合理的加入冗余字段這個(gè)潤(rùn)滑劑,減少join,讓數(shù)據(jù)庫(kù)執(zhí)行性能更高更快。

選擇哪一種呢?如果你是一個(gè)美學(xué)狂人,并且財(cái)大氣粗,非要使用第一種方案,也沒(méi)關(guān)系,這種方案的短板并非不可救藥的。比如,你可以增加服務(wù)器,從數(shù)據(jù)庫(kù)集群入手,進(jìn)行讀寫(xiě)分離,讀的時(shí)候可以將壓力分散到不同的數(shù)據(jù)庫(kù)服務(wù)器上,這樣也可以獲得很好的性能,只是多付出了硬件成本和維護(hù)成本。或者,你可以在數(shù)據(jù)庫(kù)前端架設(shè)Memcached之類的緩存服務(wù),減少讀寫(xiě)數(shù)據(jù)庫(kù)的次數(shù),也可以達(dá)到同樣的效果。問(wèn)題在于你確定你需要緩存之類的東西。

當(dāng)然,如果你跟我一樣,只有一臺(tái)每月幾十元買(mǎi)來(lái)的vps,甚至可能是一個(gè)虛擬主機(jī),建議還是暫時(shí)壓制你的美學(xué)欲望,跟我一起選擇第二種方案吧,除非你愿意你的整個(gè)數(shù)據(jù)庫(kù)都一直只有零零星星的幾條數(shù)據(jù)

偶有所感,歡迎拍磚,記于2011.2.28凌晨。

經(jīng)典論壇交流
http://bbs.blueidea.com/thread-3013492-1-1.html

本文鏈接:http://www.95time.cn/tech/program/2011/8311.asp 

出處:藍(lán)色理想
責(zé)任編輯:bluehearts

◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論

作者文章
Adobe Dreamweaver CS5試用小結(jié)
first-letter的一個(gè)小妙用
再談float菜單局中
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門(mén)搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁(yè)制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開(kāi)啟
國(guó)際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國(guó)國(guó)防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問(wèn)題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買(mǎi)真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語(yǔ)言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡(jiǎn)單繪制一個(gè)可愛(ài)的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡(jiǎn)單的作品展示頁(yè)面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開(kāi)發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來(lái)自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來(lái)自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫(huà),設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶名:  口令:
說(shuō)明:輸入正確的用戶名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無(wú)關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書(shū)推薦 更多內(nèi)容
網(wǎng)站可用性測(cè)試及優(yōu)化指南
《寫(xiě)給大家看的色彩書(shū)1》
《跟我去香港》
眾妙之門(mén)—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開(kāi)發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開(kāi)發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2