乙個**不管大小,其實都是一套很完整的系統,從無到有都要經過設計、製作、編碼、測試這幾個階段,而在這幾個階段中影響整個**執行效率的主要是前期的資料庫
1.資料庫設計
一般來說你的資料庫結構肯定是要按照給我們提要求的人來設計的,必須用到的字段是不可少的,這一點我們是無法控制的,我們能控制的可以有以下幾點:
1.資料庫字段(常用的分為int,bit,datetime,decimal,nvarchar,text),
1.數字型:一般用來記錄次數分數等等,還有一種可以用在檢索,排序,它比字元型來的快,如果你能用數字型的那就用數字型,特別是用來區分某條資料
是什麼型別時用,比如我們的訂單是處於新建訂單還是已確認還是已結,完全可以用數字1,2,3,4,5,6來表示,更重要的是如果我想看處於確認入住或
者已結或者對賬中狀態的訂單,如果已經是按照1,2,3,4這種順序來區分的話那我只要查詢大於某個數字的記錄就可以了,而現在我們必須是按照某個字段
等於h(已確認)或者等於d(對賬中)或者等於o(已結)這在效率上明顯下降很多,因為你用到了或,並且是字元型的,他是毫無規律可言的,那資料庫必須把每條記錄看一遍才能找到記錄。
而用大於3(比如4是已確認)的話資料庫會用二分法很快就能找到記錄.
2.字元型:建議大家在用到字元型時一定要用nvarchar型別,因為實踐證明用varchar等其他字元型別在儲存不同編碼格式的文字時會出現亂碼現象(text型別除外),
能不使用text型別就不要使用,因為text在資料庫欄位中他只是儲存了乙個指標而已,當你在查詢時他首先要通過指標找具體內容然後再根據你的有求來查詢,
這在效率上已經慢人一步了,並且需要用到convert函式轉換後才能進行查詢,這又慢人一步,整體效率就可想而知了。
3.日期型:主要是要注意你這個欄位是需要精確到某一天還是某一天的時分秒,這主要是從資料庫的整體大小考慮,資料庫越大查詢效率越低。
4.新增的每個欄位都要不允許為空,因為一旦為空後在查詢時你會增加乙個不為null的判斷,這是額外的負擔,而且也是可以人為避免的
5.資料庫的冗餘字段,主要是用在一些統計方面,我們在資料庫設計的初期雖然提要求的人沒有這方面的需求,但我們必須事前做好準備,
應該考慮到後期需要做這樣的功能,盡量把統計工作分散到日常的每個簡單操作中去,提高統計頁面統計速度
6.對資料庫做適當的索引(索引就好像一本書的目錄一樣可以讓你快速找到或者接近你要找的內容)
2.編碼階段
1.**目錄的架構
1.上傳,需要把所有上傳的檔案都統一歸到乙個目錄下並且設定為可寫無執行許可權,這樣做有2個好處:
1.可以避免瀏覽者上傳木馬等惡意程式,因為已經把執行許可權關閉了
2.如果整站需要換伺服器或者多站需要共享檔案的話可以很快速的做成乙個虛擬目錄的形式統一呼叫
3.設定方便
2.目錄層次,一般在windows作業系統中如果乙個目錄中存放大約超過5000個檔案的話,系統或者說磁碟的的尋道時間會在1-2秒或以上,這會使前台應用程式
產生額外的等待時間,如果這時訪問量很大就很容易造成阻塞現象,解決的方法是盡量分多級目錄(比如按年月日等),實踐證明分3級目錄是最科學有效的。
2.sql語句
1.sql語句和索引的關係,必須對經常用來查詢的sql語句建立索引並保證資料庫確實使用了.
2.sql語句必須很高效,如何實現,可以用查詢分析器來分析判斷,具體怎麼使用和分析可以問我,這裡不具體講了.
3.sql語句必須做到你的頁面需要用到哪些資料你才去取哪些資料
4.sql語句中不要出現datepart,convert等的函式,因為用這些函式表示需要資料庫在計算完這些函式之後他才能返回給你資料,那這又會使前台頁面產生
額外的等待時間,解決方法是我們寧願從資料庫中多取出資料然後再在頁面中使用asp內建演算法去計算,這樣做後我們就把應該讓資料庫去計算的工作分散到
每個頁面中去,浪費的只是cpu資源,而現在的cpu是完全夠用的,而且可以讓資料庫馬上釋放資源迎接下一輪的查詢,
5.sql語句中不要使用select中再次使用select的復合語句,一是語句混亂,二是效率低下,也不要使用<>,in,not in等帶有不確定因素的方法,這些都是
導致效率低下的語句
3.分頁
這個在asp和asp.net中已經有很好的解決方案,這裡也不多講了,自己看以前的**就可以了
其他還有很多細節的地方,那只有在遇到時才能跟大家一起**。
資料庫建立
刪除資料庫 drop database cpxs 資料庫操作語法 建立資料庫 create database database name on 子句 資料檔案屬性 primary 指定主檔案,否則預設第乙個 n 檔案屬性 filegrowth growth increament n 檔案組 log ...
建立資料庫
1.建立表空間 create tablespace test space logging datafile f oracle oracledata test.ora size 5m extent management local uniform segment space management au...
建立資料庫
建立乙個資料庫 binbin 有乙個主要資料庫檔案 bin.mdf 乙個次要資料庫檔案組 jay 裡面有次要資料檔案 jay 1.ndf,jay 2.ndf 乙個日誌文志檔案 ziji.ldf 判斷是否存在此資料庫,若存在就刪除 if exists select from sysdtabases w...