Re: [問題] 資料結構跟資料庫的關聯

看板Programming作者 (我 天蠍)時間11年前 (2014/07/11 10:25), 11年前編輯推噓3(3015)
留言18則, 6人參與, 最新討論串3/4 (看更多)
首先,感謝幾位先進的回應 會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://www.ptt.cc/bbs/Programming/M.1405045518.A.628.html

07/11 10:46, , 1F
B+tree
07/11 10:46, 1F
※ 編輯: jscorpio1 (140.120.62.160), 07/11/2014 10:55:15

07/11 11:40, , 2F
如果你要的東西可以直接用SQL寫出來,那本來
07/11 11:40, 2F

07/11 11:40, , 3F
就不需要在外面搞另外一層資料結構吧
07/11 11:40, 3F

07/11 14:42, , 4F
SQL 就是把這堆麻煩事給包起來, 用一條指令
07/11 14:42, 4F

07/11 14:42, , 5F
就可以辦到複雜的事情
07/11 14:42, 5F

07/11 14:43, , 6F
有的時候 SQL 寫的不好也是會有效能問題
07/11 14:43, 6F

07/11 14:44, , 7F
這就是因為 SQL 描述的方式讓資料庫系統用了
07/11 14:44, 7F

07/11 14:45, , 8F
比較沒效率的方式去進行計算的關係
07/11 14:45, 8F

07/11 14:46, , 9F
(這種現象就是 Joel 的「抽象滲漏法則」)
07/11 14:46, 9F

07/11 14:48, , 10F
如果硬是要問「資料結構在哪」, 那只好說
07/11 14:48, 10F

07/11 14:48, , 11F
它被 SQL 這一層殼給包起來了, 所以表面上
07/11 14:48, 11F

07/11 14:49, , 12F
看似一條指令實際上底下就是用這些資料結構
07/11 14:49, 12F

07/11 14:49, , 13F
在做苦工...
07/11 14:49, 13F

07/11 15:10, , 14F
程式的工作不只是從資料庫撈東西顯示
07/11 15:10, 14F

07/11 15:15, , 15F
所以ORM跟DAO如此重要(耶穌光)
07/11 15:15, 15F

07/11 17:19, , 16F
假如你要用資料做甚麼特殊運算,就可能
07/11 17:19, 16F

07/11 17:20, , 17F
需要特別的資料結構與演算法來做
07/11 17:20, 17F

07/11 17:20, , 18F
如果只是簡單的顯示資料,當然沒差
07/11 17:20, 18F
文章代碼(AID): #1JlqiEOe (Programming)
文章代碼(AID): #1JlqiEOe (Programming)