<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA天下

    小小博客,包羅萬有.
    隨筆 - 16, 文章 - 5, 評論 - 11, 引用 - 0
    數據加載中……

    數據庫設計和數據庫重構--小小心得

    對于一個軟件系統,數據庫設計是整個系統最核心的部分。

    但由于系統的需求是不斷變化,使得在數據庫設計變得十分重要而且困難。
    在需求變化非常快情況下,有一部分人會認為要尋找一種設計方法以固定不變的表結構來適用不斷變化需
    求。這個觀點是十分不明智和以現時的技術上暫時不能實現。對于軟件功能程序在需求不斷變法時候,為
    了適應新的需求,不斷重構系統的代碼。以相同的道理,數據庫設計也是程序設計的一部分。那么,數據
    庫一樣可以使用重構來實現適用不斷變化的軟件系統。

    本人認為數據庫設計將會分為兩個階段進行:

    第一階段:數據庫功能上的設計,由于在軟件系統的數據庫建立初期,數據庫也只是以實現系統同能為目
    標,對于系統性能優化將不會是數據庫設計的重點。

    ·建立軟件系統的比較通用功能基礎表。在基礎功能建立后,系統使用者會對系統部分功能作出評價和修
    改要求。而功能基礎表設計為減少日后修改和維護量,會盡量設計通用和冗雜結構。

    ·收集軟件系統的一些基本信息。對于軟件系統設計者來說,對軟件系統的中每個表數據量,程序上SQL的
    使用,系統的繁忙時段以及周期等都會有比較初步評估。但對于數據庫設計者來說,這些估計都是只一些
    推斷并沒有實際數據支持。為第二階段數據庫修改和維護,對軟件系統作一些基本數據收集是必要的。

    第二階段為數據庫系統能上優化,主要是通過第一階段收集系統數據庫一些信息來對系統做修改和優化
    數據庫具體優化方案需要以收集信息為基礎來之際來進行指定。

    下面本人總結下,數據庫中一般有哪些方面需要進行優化。

    1優化系統的SQL,具體有下面幾點可以進行:
    ·對使用頻繁的SQL以創建具體功能存儲過程來代替,可以減少數據庫系統對SQL編譯和解析
    ·涉及到數據量大的表,盡量建立基本視圖來完成數據查詢工作
    ·在程序中盡量使用批量提交
    (注:此方法在多數據更新和插入軟件系統中 ,可以比較顯著提高性能。
         在提高系統性能的同時,對程序的多線程控制技術上增加不少難度。
         若線程控制出現問題,會對數據庫帶來災難性破壞)
    ·程序在使用SQL的時候,盡量使用少消耗數據庫資源的運行方式

    2 數據庫表結構的
    ·在數據量大表中,盡量減少非必要字段索引建立。
    (注: 索引建立多了查詢速度是可以很有效的提高,但隨之而來的是插入數據消耗的數據庫資源也提高了很多)
    ·大表需要進行分區存儲
    (注:現在主流數據庫都已經開始支持分區存儲數據)
    ·在不影響系統的業務邏輯上,清理數據表中被廢棄使用的字段
     (注:在清理廢棄的字段需要關注的確定這些字段是否真的已經被廢棄,程序真的不再啟用)

    3 修改有問題的SQL
    ·在實現功能時候,由于時間或者其他原因整個系統中肯定會有部分性能不優的SQL存在。第一階段收集的數據,現在就可以有效的進行使用。通過這些數據我們可以很有效地把這些不優的SQL[甚至是很爛]找出來,一條一條進行調整
    ·在調整SQL外,還需要對數據庫內存或者共享空間等等進行調整;使得數據庫永遠是處于最優的狀態。

    以上是本人一些小小心得,如果不對的地方歡迎指教。

          MK-TIANYI


    MK-TIANYI

    posted on 2008-11-25 21:53 天一 閱讀(3133) 評論(3)  編輯  收藏 所屬分類: 其他

    評論

    # re: 數據庫設計和數據庫重構--小小心得  回復  更多評論   

    啥年代了,OO都來不及,還數據庫,設計好OO模型,數據庫只是存儲工具而已。
    2008-11-26 10:17 | 天好冷

    # re: 數據庫設計和數據庫重構--小小心得  回復  更多評論   

    首先,感謝“ 天好冷” 熱情的評論。

    以下是本人意見:
    各人從事的崗位不同,關注的側重點都會是有所不同。
    在面對幾億或者幾千萬的數據量,再好的OO設計也會出現性能問題。
    雖然,數據庫只是存儲工具。但如何使得程序通過更加優化路徑向存儲工具獲取對應信息是由DBA關心和關注;也是DBA 不斷努力提高數據庫性能一個最基本標準。

    所以,在萬變需求中,DB 需要找一條合適道路來繼續走下去。不能由于數據庫關系而拖項目或者應用程序后腿。
    2008-11-26 12:09 | 天一

    # re: 數據庫設計和數據庫重構--小小心得  回復  更多評論   

    @天好冷

    兩個不同的概念,OO能使結構清晰,高內聚等..這是從軟件設計方面的考慮,數據庫的優化在性能方面帶來的優勢,是OO不能代替的,各施其職。如果數據庫只是存儲數據的工具,那為什么大家都要用數據庫,而不用文本文件?
    2010-09-08 23:24 | Edwin.Koo
    主站蜘蛛池模板: 成**人免费一级毛片| 国产成人精品免费午夜app| 国产成人免费A在线视频| 亚洲砖码砖专无区2023| 一区二区无码免费视频网站| 亚洲jjzzjjzz在线播放| 最近最新MV在线观看免费高清| 亚洲另类精品xxxx人妖| 嫩草影院免费观看| 亚洲爆乳大丰满无码专区| 免费国产高清视频| 中国毛片免费观看| 亚洲狠狠久久综合一区77777| 91香焦国产线观看看免费| 亚洲午夜电影在线观看| 国产无遮挡吃胸膜奶免费看| eeuss影院免费直达入口| 亚洲精品国产精品乱码视色| 无码精品国产一区二区三区免费 | 亚洲高清成人一区二区三区| 九九久久国产精品免费热6| 亚洲一区二区三区在线观看精品中文| 中国一级特黄的片子免费 | 三级网站在线免费观看| 91亚洲自偷手机在线观看| 最近的中文字幕大全免费版| 成人a毛片免费视频观看| 亚洲AV无码久久精品蜜桃| 免费人成在线观看69式小视频| 亚洲人成色777777老人头| 精品国产香蕉伊思人在线在线亚洲一区二区 | 在线观看亚洲网站| 亚洲精品无码专区在线在线播放| 99久久免费看国产精品| 亚洲精品精华液一区二区| 亚洲免费视频一区二区三区| 最近中文字幕mv免费高清在线| 亚洲欧美日韩综合俺去了| 久久精品国产亚洲沈樵| 好爽…又高潮了毛片免费看| 国产精品视频全国免费观看 |