日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个网站的诞生- MagicDict开发总结2 [ACCESS的烦恼]

發布時間:2023/12/2 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个网站的诞生- MagicDict开发总结2 [ACCESS的烦恼] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? 說到數據庫,有很多很多選擇,除了MS-SQL,Oracle,SQLite,MySql,這些大家都非常熟悉的同學,還有DB2,IMSDB(灰常灰常古老的數據庫,用在OS390等Mainframe中,層次型數據結構,不做大型機的同學們可能不知道)。不過,大部分個人網站的首選還是Access,理由很簡單,ASPNET的空間,它是免費使用的。

???? 天下沒有白吃的午飯,ACCESS對于小型數據庫來說,完全沒有什么問題,不過,如果數據庫非常龐大的話,呵呵,可能讓你整天提心吊膽了。(特別是對于入門級的網絡空間來說,簡直就是災難)

???? 好了,來說說我的故事吧。我和ACCESS,不得不說的故事。

??? 使用數據庫,第一件事情,就是數據庫的設計,不過,具體設計不在這篇文章里面介紹了。[數據庫的設計,其實是非常令人糾結的事情,特別是ACCESS這種弱小的東西,考慮到空間服務商1%CPU使用率的規定,有的時候要努力的優化,不然,訪問很慢很慢很慢]。第二件事情就是使用數據庫。

?? 使用數據庫,都是從建立DBConnection開始的。如何建立DBConnection,無非是通過一個數據庫連接字符串New出一個數據庫連接實例。數據庫連接字符串放在什么地方,我很負責任的說,有N種地方可以放這個東西。最最簡單的,直接寫死在數據庫訪問類里面:

OleDbConnection?rtnConnection?=?new?OleDbConnection();
rtnConnection?
=?new?OleDbConnection("大家好,我是數據庫連接字符串");

當然,同學們在各種模式設計和IOC的洗腦下,都知道要把這個寫在配置里面了。其實在小的項目,這個真的沒有什么實際的意義。為了Install B,為了展示我也是學習過高手的代碼的,我也這樣寫了。[大型項目,非常有必要這么做,通過配置文件來修改數據庫,不是通過改寫代碼來修改數據庫]

1。先把字符串寫在配置文件里面,

??<appSettings>
????
<add?key="strconForJpDic"?value="Provider=Microsoft.Jet.OLEDB.4.0;Data?Source=@urlbase\Kuww_Net_System\Access\TJJTDS.mdb;Persist?Security?Info=True"/>
??</appSettings>

2。通過配置管理器ConfigurationManager獲得配置文件里面的字符串內容,然后實例化OleDbConnection

????????OleDbConnection?rtnConnection?=?new?OleDbConnection();
rtnConnection?
=?new?OleDbConnection(ConfigurationManager.AppSettings["strconForMagicDict"].Replace("@urlbase",?UrlBase));

3。接下來就是打開數據庫連接。

??? 這里有一個問題,我一直不是很明白。數據庫連接并不是要顯式Open才能使用。有時候不寫Open,Close也可以使用。

??? 一說,數據庫組件會自動打開,一說,有數據庫連接緩存池,這個問題我始終不知道為什么。

??? 另外,如果數據庫一直開著,不知道是不是有什么問題。

????數據庫連接開開關關,是不是會有性能問題呢?高手有人知道嗎?

?

下面是這個故事的重點了:

??? 數據庫的話,原來我只做了一個Access文件,這里面有查詢要用的一些表格,這些表格是單純Selete的。

??? 同時為了記錄下沒有查詢到結果的詞語,這里還有一個用于數據記錄INSERT的表格。

??? 這個數據庫的大小為13M,應該不是很大的數據庫。放在網絡上測試一下,第一次,不錯,速度很快,第二次,也可以,不過,到了第N次后,網站整體速度就不行了。為什么速度會不行呢,如何解決這個問題呢?為了提高網站速度,我使用了很多方法,這個將在以后的文章里面介紹。最后發現,數據庫不給力,是最大的兇手。怎么辦?怎么辦?“花錢買SQL空間可能會提高速度”,空間服務商的同學給出了一個很好[很標準]的答案,當然,也是促銷的方法。我心里也明白,這個方法一勞永逸了,不過,我喜歡在苛刻環境中,壓榨系統的最后一滴油。。。。(不是圖省錢,和CPU超頻的朋友一樣,能夠壓榨系統,也是一種樂趣)。

??? 數據庫的問題,可能是因為數據庫的占用空間太大了,在數據庫無法壓縮的情況下面,有什么好辦法嗎?把一個數據庫拆成2個試試看吧。這個方法的根據是,一次操作針對一個大數據庫可能會很慢,化整為零可能會好一點。在1個時間單位里面處理1個大數據庫,可能會對CPU造成瞬間的大的負荷,如果把處理分在2個時間單位里面,CPU使用會相對平緩,在查詢時間不是很苛刻的時候,這個會很管用。同時,把檢索的表和插入的表格分在不同數據庫里面,這樣,需要讀的文件大小不變,需要寫的文件就變得小了很多,IO的負擔也降下來了。

???把數據庫一分為二后,上線,測試一下,OK,世界重新變得美好了。。。。

?? [后來繼續試驗發現,兩個數據庫,只讀和讀寫分開來是關鍵,單個數據庫大小并不是很重要。現在13M的數據庫被分割為11M只讀和2M讀寫,并沒有平均分割,保證讀寫的那個足夠小,才是王道。有大蝦能夠解釋一下理由嗎?]

?

總結一下:

??? 1。數據庫會拖累網站速度

??? 2。數據庫只讀和讀寫表格,在使用ACCESS的時候,最好能分開來,保證每次寫文件使用的IO盡量少。

?

?

另外,覺得一個人做網站太苦了,有人愿意加入網站開發嗎?日語單詞檢索網站,ASPNET開發的。

有興趣的寫信給我 root#magicdict.com?? [convert # to @ ]

或者加MSN mynightelfplayer@hotmail.com

網站地址 http://www.magicdict.com/

?

?

?? ?

???

轉載于:https://www.cnblogs.com/TextEditor/archive/2011/05/29/2061031.html

總結

以上是生活随笔為你收集整理的一个网站的诞生- MagicDict开发总结2 [ACCESS的烦恼]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。