作者charleshu (Analog Engineer)
看板Database
标题Re: [Oracle] oracle 10g partition table的选用
时间Tue Jun 29 22:44:30 2010
※ 引述《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