임시테이블을 만들어놓고
셀렉트쿼리로 전체 리스트를 뽑습니다 ( 약 12000개 )
뽑은 리스트들과 새로운 항목들을 임시테이블에 넣는다.
문제가 되는것은 약 12000개의 데이터가 포문 안에서 인설트 되는부분이
느립니다. 12000번 루프가 돌아서 그런거같은데 로직을 바꺼야하는지
해결방법좀 제시해 주세여
//임시테이블 생성
$temporary_query = "
CREATE TEMPORARY TABLE temp_resut(
product_class enum( 'CD' ,'VCD' ) ,
cd_order_no varchar( 20 ) ,
name_eg varchar( 50 ),
name_kr varchar( 50 ),
manufacture_name varchar( 50 ),
thumb int( 11 ) ,
download int( 11 ) ,
reg_date datetime
)
TYPE=HEAP
";
$mdb->query( $temporary_query );
// 전체 리스트 목록
$query = "
SELECT SQL_CACHE
pc.order_no ,
pc.name_eg ,
pc.name_kr ,
pc.cd_sell_status ,
pc.vcd_sell_status ,
pc.virtual_quantity_use ,
pc.reg_date ,
pmc.manufacture_name
FROM pc테이블 as pc ,
pmc테이블 as pmc
WHERE pc.code = pmc.code
$class_query
";
$db->query( $query );
?>
total_record();$loop++ ) : ?>
fetch();
$rs_cd_no = $db->result( 'cd_no' );
$rs_order_no = $db->result( 'order_no' );
$rs_name_eg = htmlspecialchars( $db->result( 'name_eg' ) );
$rs_name_kr = htmlspecialchars( $db->result( 'name_kr' ) );
$rs_cd_sell_status = $db->result( 'cd_sell_status' );
$rs_vcd_sell_status = $db->result( 'vcd_sell_status' );
$rs_virtual_quantity_use = $db->result( 'virtual_quantity_use' );
$rs_manufacture_name = $db->result( 'manufacture_name' );
$rs_image_no = $db->result( 'image_no' );
$rs_reg_date = $db->result( 'reg_date' );
if( ('Yes' == $rs_vcd_sell_status AND 'No'== $rs_cd_sell_status) )
{
$class = 'VCD';
}
else
{
$class = 'CD';
}
// 등록된 이미지
$query = "
SELECT SQL_CACHE
count(*) as thumb
FROM pi테이블
WHERE order_no = '$rs_order_no'
";
$db2->query( $query );
$db2->fetch();
$rs_thumb = $db2->result( 'thumb' );
// 다운로드등록 이미지
$query = "
SELECT SQL_CACHE
count(*) as downlaod
FROM pci테이블 as pci
LEFT JOIN pi테이블 as pi
ON pci.image_no = pi.image_no
WHERE pi.order_no = '$rs_order_no'
";
$db3->query( $query );
$db3->fetch();
$rs_downlaod = $db3->result( 'downlaod' );
// 얻은 모든값들을 임시테이블에 다 넣음
$query2 = "INSERT INTO temp_resut(
product_class ,
order_no ,
name_eg ,
name_kr ,
manufacture_name ,
thumb ,
download ,
reg_date
)
values(
'$class' ,
'$rs_order_no' ,
'$rs_name_eg' ,
'$rs_name_kr' ,
'$rs_manufacture_name' ,
'$rs_thumb' ,
'$rs_downlaod' ,
'$rs_reg_date'
)
";
$mdb->query( $query2 );
?>