|
|
steven211
開墾隊隊員
. 積分: 32
. 文章: 64
. 收花: 167 支
. 送花: 131 支
. 比例: 0.78
. 在線: 338 小時
. 瀏覽: 5290 頁
. 註冊: 7127 天
. 失蹤: 2930 天
|
|
|
|
|
|
|
#1 : 2006-7-31 09:08 PM
全部回覆
|
送花
(12)
送出中...
|
|
|
引用: lch2003寫到:
自從上次被 熊小 叫我再學習 SQL,
結果我找到「 SQL語法入門」
大家參考一下
( 基本上這個不算是「入門」, 而是「進階」 )
真的是蠻進階的連union都出來了,
關聯式資料庫我覺得重要的還是觀念問題,
語法方面不要跑預存程序的話大部份都一樣,
我的經驗是這樣,
1.盡量減少連線次數 :
比如時常為了跑複雜的表格運算等等的會跑一個大迴圈,假設一千筆資料,在這
個大迴圈內又每圈再跟資料庫查詢一次資料,這個會極大伏度的降低效率。
2.與資料庫連線時只抓取所需要的資料即可,
例如Select * From xxxTable這樣把所有欄位都一次select出來自然會比較慢,
這其實牽涉到硬碟原理,
假設我的硬碟是sata 傳輸速率為80mbps好了,但是因
為多抓取一個欄位,每個欄位大概有1kbytes的資料,一次又抓取了10000筆資料
,實際上佔用的硬碟空間可能是10000*1kbytes=10000kbytes=10mbytes = sata硬碟傳輸速度(80mbps/8=10mbytes),多抓取一個欄位的資料就會多出1s的時間,當然實際上會根據各家的檔案系統及資料庫效率會有所差異,
3.cpu的速度>RAM>>HDD:
就是因為這樣才會有許多快取機制,硬碟sata理想通道寬度是150mbps sata2是300mbps,現在隨便一台電腦的記憶體寫入速度都有3g以上,更何況硬碟又有硬碟磁頭所造成的效能瓶頸,除非砸大本錢去買光纖通道的storage(最高可達4gmbps),不然其實程式方面多下點功夫還是值得的。
我遇到很多軟體工程師基本上是不想碰硬體這一塊的,但是我覺得多了解一些硬體原理絕對會增加程式的執行效率(雖然我功力還是很弱)。
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
|
|