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