推 LaPass:挺有趣的問題....我也思考過,不過刷個百萬筆資料去比較過 03/13 23:53
→ LaPass: ^沒 03/14 01:35
→ kuAIpAI:我怎感覺 有點像是課本問題阿XDD 是我錯覺嗎 03/14 01:44
推 LaPass:課本應該只會教正規化吧 = =" 03/14 09:12
→ ken1325:這就是 OLAP 和 OLTP 的不同,要根據你的目的去設計資料庫 03/14 10:11
→ ken1325:OLAP:利於查詢。 OLTP:利於新增、修改、刪除。 03/14 10:15
→ ken1325:有時還會需要把 OLTP轉成OLAP,這時候就要反正規化。 03/14 10:17
→ eugene2528:這確實像課本問題 03/14 12:31
→ characterlu:先聲明這並不是課本問題,是我實務上遇到的 03/14 13:07
→ characterlu:例如做一個龐大的會員資料庫,很有可能要記錄超過100個 03/14 13:07
→ characterlu:欄位以上,就會考慮這些問題,此外,就算是課本問題 03/14 13:08
→ characterlu:也是可以討論吧,怎麼好像一副怕幫別人做作業的感覺 03/14 13:08
→ MOONRAKER:本來就不應該請別人做作業 當然也不想幫 03/14 14:09
→ liaosankai:@_@ 我覺得這不是作業問題,感覺這是個好問題 03/14 14:45
推 yanli2:A只有一個資料表? 03/14 15:52
→ characterlu:我有請人幫我做作業嗎?我只是說就算是作業就不能討論? 03/14 16:02
→ characterlu:我只是單就資料庫的規劃請益,一起思考好做法 03/14 16:03
→ characterlu:我也不是要請誰幫忙,我現在是有像學校做PAPER那樣 03/14 16:03
→ characterlu:指定格式跟字數嗎?請動一動閣下寫程式的頭腦判斷好嗎? 03/14 16:04
→ characterlu:莫名其妙有建設性的回答看不到半個,只看到某酸民一副 03/14 16:05
→ characterlu:不可一世好像別人在求它似的,你若懂不想回答可以不要 03/14 16:06
→ characterlu:回應,不要回那種自私自利的話,沒人要你幫忙 03/14 16:06
→ characterlu:如果你也不懂,那你講那種話實在是傷你父母的心,沒家教 03/14 16:07
→ characterlu:YANLI2對,理論上是,單純想比較,多欄位到底要全塞在同 03/14 16:08
→ characterlu:資料表,還是要拆多資料表,比較筆數龐大時的處理效率 03/14 16:09
噓 carlcarl:有求於人 態度還是好一點吧 03/14 16:11
→ carlcarl:會覺得像是作業 一部分也是因為你自己也沒提供什麼想法 03/14 16:13
→ characterlu:講態度有分先後,我發文的時候自認是請益或討論心態 03/14 19:19
→ characterlu:而且我也聲明了並不是作業,甚至連實務的思考點都說了 03/14 19:20
→ characterlu:何必一直強調他是否為作業? 這點我覺得很奇怪 03/14 19:22
→ characterlu:所以才說就算是作業,難道就不能討論不能請教嗎? 03/14 19:22
推 mrbigmouth:你可以自己測試看看 以相同資料表結構、索引下去插 03/14 19:52
→ mrbigmouth:個一千萬筆資料進同一資料表 再測試插入新增搜索所需要 03/14 19:53
→ mrbigmouth:花費的時間能不能接受 03/14 19:53
→ mrbigmouth:以我的經驗 大多時候是使用是越少資料表越好 03/14 19:54
→ mrbigmouth:(在資料結構完全相同的情況下) 03/14 19:54
→ characterlu:嗯跟我想的一樣,只是覺得這樣規劃很醜,有程式潔癖 03/14 20:29
→ chrisQQ:常搜尋/讀取/修改 和很少修改的欄位分開 03/14 20:29
→ characterlu:那如果是我要從1000萬筆拉一筆資料出來where sn=$sn 03/14 20:30
→ chrisQQ:建好 index,拉出來後丟 memcache 之類的 03/14 20:32
→ chrisQQ:discuz 之類的討論區有按照尾數之類的分散在十個表 03/14 20:32
→ chrisQQ:但你搜尋就要搜10個表 03/14 20:33
→ characterlu:chrisQQ這方式很棒很聰明,不失為兩全其美的好方法 03/14 20:33
→ characterlu:但是欄位分開會不會造成資料庫管理的錯亂? 03/14 20:34
→ chrisQQ:如果你喜歡撈出來的時候拼在一起,就 join 起來 03/14 20:35
→ chrisQQ:另外我剛剛測了一下,在 index 建好的情況下 03/14 20:36
→ chrisQQ:27,353,371 筆資料撈特定 sn 的時間 查詢花費 0.0007 秒 03/14 20:36
→ chrisQQ: 特定一筆 sn 03/14 20:36
→ chrisQQ:不過通常 join 的速度不會比較快,這是在我們公司的case下 03/14 20:38
→ chrisQQ:測試的結果。當然沒有完全正規化也是影響的因素。 03/14 20:38
→ chrisQQ:是說,也許你可以到 database 板問其他前輩們的意見 03/14 20:39
推 carlcarl:應該說是programer會錯亂 管資料庫本身的人應該還好 03/14 21:45
→ carlcarl:所以建議query應該整合並分類成幾個model來用 03/14 21:46
→ carlcarl:資料庫架構有改的話 就統一從model去改 寫程式的只要 03/14 21:47
→ carlcarl:知道他要用什麼function就好 03/14 21:47
→ characterlu:所以似乎作法還是得看應用在何種情況之下 03/15 16:38
→ characterlu:並無那個特定的比較好 03/15 16:38