看板 Database 關於我們 聯絡資訊
※ 引述《iamnotfat (我不肥)》之銘言: : 假設我現在有一個系統 內含手機號碼為primary key,共一百萬筆 : 但我不確定門號分布,所以我可以用hash partition or range partition : 不知道大大們會選用哪一種 : ex1: : range partition: : 0910 : 0920 : 0930 : . : . : . : 0990....etc : 但為了performance問題仍可在細切....例如每五萬筆再另開一個partition : ex2: : hash partition : hash 20 切成二十個等分 以我個人的經驗, Oracle 在幾千萬筆以內, 假如 index 做的好, 完全沒有必要partition, 我以前做的系統每秒約200筆交易, 系統維持14天的紀錄, 隨時有上億筆資料在線上, 用 Oracle 8.1.7, 沒有需要 partition. 也試過 hash index, 反而比較慢. 在一個特定情況下partition table才會比較快, 那就是每天新增一個新 partition 並移除 一個不需要的舊 partition代替 delete 那些舊紀錄,會稍快一些,但要把建 partition 的 程式碼放在 Oracle 的Queue 或 cron 裡, 在production系統上我不太放心. B tree index, 資料存取時間是 O(log n), 分割成 1/20應該不會有明顯的加速. 且 fragmentation 可能更嚴重除非你一個 partation 放在一個硬碟裡. -- Do not depend on others without effort... 當我年輕時,請教別人問題時常聽到上面那句話. 當時心裏偶而會有些小小抱怨. 當時間過去,我偶而會想到上面那句話, 心中十分感謝當初告訴我那句話的人. 當發現問題時,最有價值的不是問題的答案, 而是找到解決的方向,並在努力的過程裡具備解決問題的能力. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.169.217.133