在mysql中建立臨時表:
create table temptable_2
(instanceid numeric(30),
celltype varchar(128),
enodeb_id numeric(30),
eutrancell_id numeric(30)
)engine=myisam default charset=utf8;
create index temptable_2_1 on temptable_2
(enodeb_id,eutrancell_id);
create table temptable_3
(eventtimestamp date,
team_name varchar(400),
lac numeric(30),
ci varchar(20),
e_node_id numeric(30),
cell_type varchar(10)
)engine=myisam default charset=utf8;
create index temptable_3_1 on temptable_3
(lac,ci);
sourcedbname="database.tempdb">
select t3.eventtimestamp eventtimestamp,
t2.instanceid, t3.team_name, t3.lac, t3.ci, t3.e_node_id, t3.cell_type
from temptable_2 t2 ,temptable_3 t3
where t2.enodeb_id||t2.eutrancell_id = t3.ci" />
where t2.enodeb_id||t2.eutrancell_id = t3.ci語句中t2.enodeb_id||t2.eutrancell_id產生了笛卡爾積,正常情況下temptable2中有4萬多條資料,拼接之後產生了笛卡爾積有大於16億條資料,造成記憶體溢位。處理的方法:將temptable2中多建立一列enodeb_eutrancell_id,存放拼接之後的資料。然後直接用where t2.enodeb_id||t2.eutrancell_id = t3.ci匹配。以下是更改之後的**。(注意建立索引)
create table temptable_2
(instanceid numeric(30),
celltype varchar(128),
enodeb_id numeric(30),
eutrancell_id numeric(30),
enodeb_eutrancell_id numeric(30)
)engine=myisam default charset=utf8;
create index temptable_2_1 on temptable_2
(enodeb_eutrancell_id);
sourcedbname="database.tempdb">
select t3.eventtimestamp eventtimestamp,
t2.instanceid, t3.team_name, t3.lac, t3.ci, t3.e_node_id, t3.cell_type
from temptable_2 t2 ,temptable_3 t3
where t2.enodeb_eutrancell_id = t3.ci" />
避免笛卡爾積現象方式一
1 主要sql語句 select from select row rownum rownum from select matnr,maktx,lgort,lgobe,charg,labst,meins,matkl,wgbez,brgew,mtart,gewei,menge as qty,holdqt...
js笛卡爾積
可以用來模擬路徑,或者標籤的順序。笛卡兒積組合 function descartes list var result var pindex null var tempcount 0 var temp 根據引數列生成指標物件 for var index in list pindex index 單維度...
笛卡爾積 LintCode
我們採用二維陣列setlist表示集合陣列,其中setlist i 中的每個元素都為整數,且不相同。求集合setlist 0 setlist 1 setlist setlist.length 1 的笛卡爾積。一般地,集合a和集合b的笛卡爾積a b 注意事項 1 setlist.length 5 1 ...