概述
OB中的表实际也是索引有序结构(与ORACLE中索引组织表类似),要求必须有主键,如果创建表时显示指定了主键,则要求分区键是主键的子集,如果没有显示指定分区键,则也会隐士创建 分区键+__pk_increment 组成的主键,总之分区键一定会包含在主键中,是索引的一部分。某些场景不需要再单独创建索引。
示例
没有显示指定主键的分区表
create table tparta(intime date,id number,c varchar2(100)) partition by range(intime) ( partition part_20240706 values less than(to_date('2024-07-07 00:00:00','yyyy-mm-dd hh24:mi:ss')), partition part_20240707 values less than(to_date('2024-07-08 00:00:00','yyyy-mm-dd hh24:mi:ss')), partition part_20240708 values less than(to_date('2024-07-09 00:00:00','yyyy-mm-dd hh24:mi:ss')), partition part_20240709 values less than(to_date('2024-07-10 00:00:00','yyyy-mm-dd hh24:mi:ss')), partition part_20240710 values less than(to_date('2024-07-11 00:00:00','yyyy-mm-dd hh24:mi:ss')) ); insert into tparta select to_date('2024-07-11 00:00:00','yyyy-mm-dd hh24:mi:ss')-rownum/(3600*24),rownum, 'test'||rownum from dual connect by rownum<=3600*24*5; commit; obclient [SYS]> create table tparta(intime date,id number,c varchar2(100)) -> partition by range(intime) -> ( -> partition part_20240706 values less than(to_date('2024-07-07 00:00:00','yyyy-mm-dd hh24:mi:ss')), -> partition part_20240707 values less than(to_date('2024-07-08 00:00:00','yyyy-mm-dd hh24:mi:ss')), -> partition part_20240708 values less than(to_date('2024-07-09 00:00:00','yyyy-mm-dd hh24:mi:ss')), -> partition part_20240709 values less than(to_date('2024-07-10 00:00:00','yyyy-mm-dd hh24:mi:ss')), -> partition part_20240710 values less than(to_date('2024-07-11 00:00:00','yyyy-mm-dd hh24:mi:ss')) -> ); Query OK, 0 rows affected (0.135 sec) obclient [SYS]> insert into tparta select to_date('2024-07-11 00:00:00','yyyy-mm-dd hh24:mi:ss')-rownum/(3600*24),rownum, -> 'test'||rownum from dual connect by rownum<=3600*24*5; Query OK, 432000 rows affected (7.802 sec) Records: 432000 Duplicates: 0 Warnings: 0 obclient [SYS]> commit; alter system major freeze; MySQL [oceanbase]> select tenant_id,table_id,table_name from __all_virtual_table where table_name='tparta'; +-----------+------------------+------------+ | tenant_id | table_id | table_name | +-----------+------------------+------------+ | 1001 | 1100611139454084 | TPARTA | +-----------+------------------+------------+ 1 row in set (0.008 sec) select column_id,column_name,rowkey_position,partition_key_position from __all_virtual_column where table_id=1100611139454084 order by rowkey_position; MySQL [oceanbase]> select column_id,column_name,rowkey_position,partition_key_position from __all_virtual_column where table_id=1100611139454084 order by rowkey_position; +-----------+----------------+-----------------+------------------------+ | column_id | column_name | rowkey_position | partition_key_position | +-----------+----------------+-----------------+------------------------+ | 17 | ID | 0 | 0 | | 18 | C | 0 | 0 | | 16 | INTIME | 1 | 1 |<<< | 1 | __pk_increment | 2 | 0 |<<< +-----------+----------------+-----------------+------------------------+ 4 rows in set (0.054 sec) explain extended_noaddr select * from tparta where INTIME>=to_date('2024-07-11 00:00:00','yyyy-mm-dd hh24:mi:ss')-1/1440\G obclient [SYS]> explain extended_noaddr -> select * from tparta where INTIME>=to_date('2024-07-11 00:00:00','yyyy-mm-dd hh24:mi:ss')-1/1440\G *************************** 1. row *************************** Query Plan: ===================================== |ID|OPERATOR |NAME |EST. ROWS|COST| ------------------------------------- |0 |TABLE SCAN|TPARTA|60 |47 | ===================================== Outputs & filters: ------------------------------------- 0 - output([TPARTA.INTIME], [TPARTA.ID], [TPARTA.C]), filter(nil), access([TPARTA.INTIME], [TPARTA.ID], [TPARTA.C]), partitions(p4), is_index_back=false, range_key([TPARTA.INTIME], [TPARTA.__pk_increment]), range(2024-07-10 23:59:00,MIN ; NULL,MIN), range_cond([TPARTA.INTIME >= ?]) 1 row in set (0.004 sec) 按intime查询1分钟的数据,可以看到可以正常利用主键,range(2024-07-10 23:59:00,MIN ; NULL,MIN)
复制
最后修改时间:2024-10-22 17:24:37
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年4月中国数据库流行度排行榜:OB高分复登顶,崖山稳驭撼十强
墨天轮编辑部
2041次阅读
2025-04-09 15:33:27
2025年3月国产数据库大事记
墨天轮编辑部
911次阅读
2025-04-03 15:21:16
AI关键场景得到全面支持!OceanBase入选Forrester报告三大领域代表厂商
OceanBase数据库
247次阅读
2025-04-19 22:27:54
数据库管理-第313期 分布式挑战单机,OceanBase单机版试玩(20250411)
胖头鱼的鱼缸
220次阅读
2025-04-10 22:41:56
OceanBase CEO杨冰:2025年分布式数据库将迎来本地部署和国产升级的全面爆发
通讯员
203次阅读
2025-04-03 09:35:26
OceanBase单机版产品解读
多明戈教你玩狼人杀
183次阅读
2025-04-11 15:28:33
2024年中国联通软研院OceanBase扩容单一来源采购公示
通讯员
162次阅读
2025-04-21 15:55:59
OceanBase单机版保姆级安装
薛晓刚
144次阅读
2025-04-10 17:30:42
定档!2025 OceanBase开发者大会,5月17日广州见!
OceanBase数据库
134次阅读
2025-04-09 16:48:47
oceanbase社区版三种部署方式(obd白屏部署集群)
鼠鼠Alben(工作学习版)
128次阅读
2025-04-07 00:52:19