作者jscorpio1 (我 天蠍)
看板Programming
標題Re: [問題] 資料結構跟資料庫的關聯
時間Fri Jul 11 10:25:11 2014
首先,感謝幾位先進的回應
會PO文的原因是因為看了網路上的一篇文章
連結
http://0rz.tw/qNMbk
因為文中一直強調選對方法能增加執行速度,這當然沒錯
1億筆資料,O(n)跟O(1)有著天差地遠的效率
因此,才連結到我前一篇文章裡所說,到底資料結構跟資料庫的關係是什麼?
如那篇文章中所舉的範例,100萬筆通訊錄資料的排序及搜尋
我不清楚的是,資料排序完之後,最終會寫入資料庫,總不可能一直都放在記憶體吧
既然這樣,就像幾位先進講的,資料庫在存入資料時已經建立了某種資料結構
我們再用SQL去取出來就是了
那麼,資料結構到底用在哪? 不是說資料庫實作了什麼資料結構
而是在程式code中,資料結構用在哪?
或者說,既然資料庫都已經實作了如k大所說的B+tree了
那在程式code中,不就只要SQL取出來,在display給使用者就好了
ps.感謝K大的回應,讓我修正了上面這一段
問了很笨的問題,請各位包涵 = ="
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.62.160
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Programming/M.1405045518.A.628.html
1F:推 KoenigseggG:B+tree 218.161.96.194 07/11 10:46
※ 編輯: jscorpio1 (140.120.62.160), 07/11/2014 10:55:15
2F:推 bxxl:如果你要的東西可以直接用SQL寫出來,那本來 114.45.137.253 07/11 11:40
3F:→ bxxl:就不需要在外面搞另外一層資料結構吧 114.45.137.253 07/11 11:40
4F:推 LPH66:SQL 就是把這堆麻煩事給包起來, 用一條指令 140.112.30.32 07/11 14:42
5F:→ LPH66:就可以辦到複雜的事情 140.112.30.32 07/11 14:42
6F:→ LPH66:有的時候 SQL 寫的不好也是會有效能問題 140.112.30.32 07/11 14:43
7F:→ LPH66:這就是因為 SQL 描述的方式讓資料庫系統用了 140.112.30.32 07/11 14:44
8F:→ LPH66:比較沒效率的方式去進行計算的關係 140.112.30.32 07/11 14:45
9F:→ LPH66:(這種現象就是 Joel 的「抽象滲漏法則」) 140.112.30.32 07/11 14:46
10F:→ LPH66:如果硬是要問「資料結構在哪」, 那只好說 140.112.30.32 07/11 14:48
11F:→ LPH66:它被 SQL 這一層殼給包起來了, 所以表面上 140.112.30.32 07/11 14:48
12F:→ LPH66:看似一條指令實際上底下就是用這些資料結構 140.112.30.32 07/11 14:49
13F:→ LPH66:在做苦工... 140.112.30.32 07/11 14:49
14F:→ azureblaze:程式的工作不只是從資料庫撈東西顯示 36.224.100.32 07/11 15:10
15F:→ Killercat:所以ORM跟DAO如此重要(耶穌光) 59.124.251.135 07/11 15:15
16F:→ mars90226:假如你要用資料做甚麼特殊運算,就可能 1.171.163.140 07/11 17:19
17F:→ mars90226:需要特別的資料結構與演算法來做 1.171.163.140 07/11 17:20
18F:→ mars90226:如果只是簡單的顯示資料,當然沒差 1.171.163.140 07/11 17:20