【Oracle】利用笛卡尔积创建千万级表的全记录
执行语句:
-- tag表结构
create table tag( id number(12), name nvarchar2(20), primary key(id) )
-- tag充值 insert into tag select rownum, dbms_random.String('*',dbms_random.value(6,20)) from dual connect by level<1001
--用户表结构 create table customer( id number(12), name nvarchar2(20), primary key(id) )
--用户表充值 insert into customer select rownum, dbms_random.String('*',dbms_random.value(6,20)) from dual connect by level<20001
--利用笛卡尔积创建连接表 create table customer_tag as select rownum as id,tag.id as tid,customer.id as cid from tag,customer where mod(tag.id,2)=0
--连接表加主键 alter table customer_tag add constraint pk_customer_tag primary key (id);
--连接表设索引 create index idx_tid_cid on customer_tag(tid,cid);
执行记录:
SQL> set timing on; SQL> create table tag( 2 id number(12), 3 name nvarchar2(20), 4 primary key(id) 5 ); 表已创建。 已用时间: 00: 00: 00.01 SQL> insert into tag 2 select rownum, 3 dbms_random.String('*',dbms_random.value(6,20)) 4 from dual 5 connect by level<1001; 已创建 1000 行。 已用时间: 00: 00: 00.08 SQL> commit; 提交完成。 已用时间: 00: 00: 00.00 SQL> create table customer( 2 id number(12), 3 name nvarchar2(20), 4 primary key(id) 5 ); 表已创建。 已用时间: 00: 00: 00.01 SQL> insert into customer 2 select rownum, 3 dbms_random.String('*',dbms_random.value(6,20)) 4 from dual 5 connect by level<20001; 已创建 20000 行。 已用时间: 00: 00: 00.27 SQL> commit; 提交完成。 已用时间: 00: 00: 00.01 SQL> create table customer_tag 2 as 3 select rownum as id,tag.id as tid,customer.id as cid from tag,customer where mod(tag.id,2)=0; 表已创建。 已用时间: 00: 00: 03.91 SQL> select count(*) from customer_tag; COUNT(*) ---------- 10000000 已用时间: 00: 00: 00.10 SQL> alter table customer_tag add constraint pk_customer_tag primary key (id); 表已更改。 已用时间: 00: 00: 03.90 SQL> create index idx_tid_cid on customer_tag(tid,cid); 索引已创建。 已用时间: 00: 00: 04.55 SQL> commit; 提交完成。 已用时间: 00: 00: 00.00 SQL>
END
分类:
Oracle.千万级表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-01-29 [Oracle/sql]查看当前用户名下有多少表 以及查看表字段信息
2020-01-29 [oracle/Sql]怎样比较两表的差异?
2015-01-29 【Canvas与艺术】红色凯尔特结
2015-01-29 Java环境变量设置
2015-01-29 Win7安装软件,界面上中文显示乱码的解决方案
2014-01-29 【Canvas技法】勾画十二齿斜齿齿轮轮廓
2014-01-29 【Java与排列组合】某年高考选择题:1,3,5,7,9中选两个,0,2,4,6,8中选两个,组成的无重复四位数有几个?