文章回顧:
附章:
上節回顧:
本節内容:
基礎說明:
而操作一個正在運作的幾百M的access資料庫,實在不是件容易的事,是以優化工作隻能在技術上尋求突破。
是以稍為偏移了一下,把整體優化的壓力,部分分擔到了access資料庫。
本節将介紹一個最開始的資料庫優化方式:文章内容的分表及分庫。
基礎分析:
而文章表中占最多空間的,得屬文章的内容了,本節将把它給抽出來。
我們看下原始的文章表資料結構的設計:
部落格文章表:Blog_Content
字段:
ID 文章ID
Title 文章标題
Body 文章内容
Abstract 文章簡介
...... 其它字段省略
這裡有一個正常文章表的設計,就是文章的内容Body 字段,通常是放在文章表中的。
而這個字段出現及使用是在什麼情況?
出現1:背景發表或編輯文章時
出現2:檢視文章。
從這裡可以看出,涉及點并不多,很少,而且前台有靜态頁面頂着,基本除了發文章和編輯文章,這麼大資料量的内容,幾乎都不露面。
那文章表出現和使用又在什麼情況下出現?
是以,将不常用的,又占有90%以上空間的文章内容 Body 字段獨立出來,顯得相當有必要。
于是進行分表:
多了一個Blog_ContentBody表:
字段,就兩個:
ID:文章ID
Body:文章内容。
然而僅是進行分表,力度似乎不夠。
于是再進行分庫:
将Blog_ContentBody直接分到另一個access資料庫中。
提示:最後發現,去除文章内容的資料庫,僅剩下幾十M,而文章内容,竟然占了500多M。
從myspace.mdb,更名為:
qblog.mdb 主資料庫
qblogbody.mdb 文章内容資料庫
當然,表分了,庫也分了,代碼不可能不跟進,技術手段也得跟着更新。
更新的實作與操作步驟:
1:分表分庫,代碼動改相容更新
1:删除Blog_Content表的Body枚舉字段。
2:增加多資料庫的枚舉:
public enum U_QBlogBodyEnum
{
Blog_ContentBody,
}
然後資料庫增加一個QBlogBodyConn的資料庫連結即可。
3:釋出編輯文章和顯示文章,增加文章内容的獨立操作函數。
代碼改動很小,就是半小時以内完成的事情。
2:資料庫分庫步驟:
2:打開原來的表Blog_Content,删除Body字段,然後壓縮一下資料庫,剩下20多M了。
3:直接更新dll到伺服器中,整個的更新過程很迅速。
總結:
隻是,有一點還沒改的,就是還一直糾結的使用access,别問我為啥不用mssql。
也許某天,Access它跑不動了,優化到頂了,其它資料庫就上場了。
本文轉自cyq1162 51CTO部落格,原文連結:http://blog.51cto.com/cyq1162/606977,如需轉載請自行聯系原作者