安達利機車行

跳到主文

曾經是一間在台南府前路上的機車行 ~

部落格全站分類:生活綜合

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 11月 04 週五 200518:42
  • [DB]為什麼要反正規化!!!

正規化(Normalization)這名詞有學過資料庫的人應該都聽過...
我剛剛學資料庫的時侯真的搞不清楚這三個字的含意...
也完全不知道為什麼要正規化...

到後來...我才知道...原來丫...
正規化就如同書本上所說的:
A.欄位唯一性 (Field Uniqueness)
B.主關鍵欄位 (Primary Key)
C.功能關聯性 (Function Dependence)
D.欄位獨立性 (Field Independence)

管他的什麼1NF->2NF...反正他的意思就是...
當成鍵值的欄位不可以重複,
資料重複出現的欄位分解到另一個table,
欄位的關聯要明確!!!

事實上,如果每個資料庫都依正規化這樣去拆...
帶來的好處是資料乾淨、關聯明確、
不容易出現多餘重複的欄位...節省實體記憶體空間!!!!

在系統的開發階段,過度的正規化不見得是一件好事!!!
有一陣子,我像是著了正規化的魔...
後來發現,提升效能的最大殺手就是過度的正規化!!!

為了查詢顯示出資料,做了七、八個table來關聯資料出來...
如果可以把這些關聯給簡化...效率不是有很大的提升嗎?
當資料超過十萬筆、二十萬筆時...花費在關聯的時間應該是當時倍數吧??
搞不好是0.001秒(沒關聯)與 0.1秒(有關聯)的差別------>100倍哦
(聽說超過六個關聯...資料一多時效能就會被拉下來)

小弟最近系統開發過程中在調校的階段
試著把一些常用的關聯給反正規化
也就是說,讓他回來原來的表格...
讓原來需要關聯四五個talbe的查詢簡化至一到二個table關聯!!
或許因此多了幾個欄位(浪費了硬碟空間-->現在的硬碟空間應該不用怕不夠用吧!!!)
但是反正規化的操作當資料大量查詢或交易時,
在效能上將會比先前有明顯的提升!!!

對於某些人說來(就是我)這曾經是個迷失...
事實上...做反正規化時-->心態上不可以有潔癖!!!!






文章標籤
全站熱搜
創作者介紹
創作者 湯瑪的吳 的頭像
湯瑪的吳

安達利機車行

湯瑪的吳 發表在 痞客邦 留言(0) 人氣(6,740)

  • 全站分類:
  • 個人分類:程式設計
▲top

個人資訊

湯瑪的吳
暱稱:
湯瑪的吳
分類:
生活綜合
好友:
累積中
地區:

文章精選

文章分類

  • 登山車 (0)
  • 登山遊記 (0)
  • 程式設計 (0)
  • 聽我講看嘜 (0)
  • 影視閱讀 (0)
  • 跑步 (0)
  • 未分類文章 (1)

最新文章

    熱門文章

    • ()[SQL]利用CONVERT來轉換yyyy/mm/dd日期格式
    • ()[SQL]每個GROUP的第一筆資料
    • ()[.net]在vb.net下寫多執行緒的程式
    • ()[SQL]查詢筆數重複的資料
    • ()[.net]用Select方法過濾DataTable中的資料
    • ()[SQL] WHERE條件中的if判斷
    • ()[皮蛇]原來這真的很痛..
    • ()[SQL] 補0 和 補空白
    • ()[DB]為什麼要反正規化!!!
    • ()[mvc] 指定 Html.TextBoxFor 預設值 或 回傳值

    最新留言

    動態訂閱

    文章搜尋

    誰來我家

    wthomasu
    PIXNET Logo登入

    參觀人氣

    • 本日人氣:0
    • 累積人氣:809,426