连载:告诉你如何设计一个日访问量千万级别的系统,谈oracle的高级设计和开发(2)...
接下來正式開篇講解在實(shí)際中大型項(xiàng)目中oracle的高級設(shè)計(jì)及開發(fā)的內(nèi)容,以下講解的oracle內(nèi)容以及示例程序都是基于oracle11R2。
為了防止脫離實(shí)際地搞一堆理論,本人盡量用實(shí)際工作中的例子來說明問題,當(dāng)然一些必要的理論有時候還是需要講解,因?yàn)檎f的內(nèi)容是高級設(shè)計(jì)及開發(fā),入門級的SQL以及數(shù)據(jù)庫概念將不會做詳細(xì)講解。
絕大多數(shù)IT項(xiàng)目,都是圍繞數(shù)據(jù)庫進(jìn)行各種業(yè)務(wù)的,所以也有人將這類項(xiàng)目稱為數(shù)據(jù)庫項(xiàng)目,也就是說數(shù)據(jù)庫是重點(diǎn),有過項(xiàng)目設(shè)計(jì)經(jīng)驗(yàn)的都知道,好的數(shù)據(jù)庫設(shè)計(jì),可以讓開發(fā)和維護(hù)變得簡單,提升系統(tǒng)的擴(kuò)展性。要想設(shè)計(jì)一個好的數(shù)據(jù)庫系統(tǒng),對數(shù)據(jù)庫知識的掌握程度,加上個人的業(yè)務(wù)經(jīng)驗(yàn),直接決定了設(shè)計(jì)的好壞。
?
Oracle數(shù)據(jù)庫是個龐大的體系,從大的方向可以分為oracle內(nèi)部體系結(jié)構(gòu)和外部體系結(jié)構(gòu)。本人以后將陸陸續(xù)續(xù)通過實(shí)際例子引出oracle的各種知識結(jié)構(gòu)。
?
言歸正傳,我們現(xiàn)在要開發(fā)一個百萬級別訪問量的商業(yè)問卷調(diào)查系統(tǒng),參與調(diào)查的網(wǎng)民將參與抽獎活動,我們開始進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。
因?yàn)槭?/span>oracle高級設(shè)計(jì)和開發(fā)的講解,具體的業(yè)務(wù)分析不深入,簡單說明:從使用者角度,系統(tǒng)會分兩部分,一個是網(wǎng)站前端,一個是管理后臺;從業(yè)務(wù)上分類,則會包含會員管理模塊、問卷內(nèi)容管理模塊、統(tǒng)計(jì)分析模塊、積分模塊、權(quán)限設(shè)置、系統(tǒng)設(shè)置等等。
接下來將截取會員管理模塊部分,詳細(xì)講解數(shù)據(jù)庫高級設(shè)計(jì),引出各種oracle的各種知識,特別是可以優(yōu)化設(shè)計(jì)和開發(fā)的知識,其中一些業(yè)務(wù)細(xì)節(jié)將被忽略。不當(dāng)之處請見諒,謝謝高手們批評指正。
首先要判斷系統(tǒng)的類型,毫無疑問,問卷調(diào)查系統(tǒng)是個OLTP系統(tǒng)。
其次評估數(shù)據(jù)量,評估下來會有2000萬用戶,活躍用戶會有200萬。2000萬用戶當(dāng)然不算小,1個字節(jié)位就是20M的數(shù)據(jù),假如一條會員記錄信息有0.5K的話,會員表的大小就是10G。
由上面兩個評估和判斷可以得出結(jié)論,普通的企業(yè)管理軟件的設(shè)計(jì)思路肯定不是好方法。
通常的會員系統(tǒng)中會員表會包括以下字段:
會員ID、會員登錄名、會員登錄密碼、會員昵稱、會員email、會員中文名、證件類型、證件號碼、會員手機(jī)、會員性別、會員類別、會員QQ號碼、聯(lián)系電話、聯(lián)系地址、郵政編碼、會員所在地區(qū)、會員生日、興趣愛好、職業(yè)、崗位、
自我介紹、個人頭像、注冊時間,等等
?
在設(shè)計(jì)上性能考慮就很重要,可以起碼從以下五點(diǎn)考慮:
A)合理定義字段的數(shù)據(jù)類型
B)將會員表分拆成多個表
C)建立分區(qū)表
D)建立適當(dāng)?shù)乃饕?/span>
E)普通表數(shù)據(jù)對應(yīng)的表空間和索引表對應(yīng)的數(shù)據(jù)表空間分離
未完,針對上述五點(diǎn)論述,待續(xù)。。。
轉(zhuǎn)載于:https://blog.51cto.com/connieguo/1617810
總結(jié)
以上是生活随笔為你收集整理的连载:告诉你如何设计一个日访问量千万级别的系统,谈oracle的高级设计和开发(2)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件操作和格式化
- 下一篇: [转]win系统下nodejs安装及环境