避免笛卡爾積

2021-06-29 15:52:28 字數 1745 閱讀 9914

在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 ...