mysql - myisam 엔지 사용중인데 1173개 이상 데이타가 안들어가는 현상 ? 이 발생하네요..
해당 테이블에서 혹시나 해서 필드 수를 4개를 줄여도 insert 실행시 들어가는 갯수는 1173개 후 정지되네요 ㅠ.ㅜ
이게 무슨 현상인가요 ?
배강민님 답변은 감사드립니다.
하지만, xml로 받아온 파일을 루프를 돌려서 insert 하고 있는데 안되서 질문을 남겼습니다.
이상하게 어떤 방법을 하던 1173개가 들어가고.... 루프틑 도는데 insert는 안되네요 ㅠ.ㅜ
위 답변과는 다른 현상입니다.
메모리 오버 확인 해보세요
루프를 돌리면 선점하는 메모리가 점점 증가해서 메모리 오버가 되는 경우가 있습니다.
절적히 해제 시키는 문구를 넣던가, 메모리 설정을 높여 보세요.
kaido님
답변 주셔서 감사드립니다.
근데 상단에는
ini_set('max_execution_time', 86400);
ini_set('memory_limit','-1');
이렇게 해 두었구요...
mysql query를 돌리는 변수 끝 부분에는 unset($RES); 이렇게 했는데도...
테이블도 삭제하고 다시 만들어도 보고 해도
데이타가 들어가는 개수가 1173개로 고정되네요...
CREATE TABLE `wiz_product2_xml` (
`idx` INT(15) NOT NULL AUTO_INCREMENT,
`travel_code` VARCHAR(20) NOT NULL,
`travel_name` VARCHAR(125) NOT NULL,
`catcode` VARCHAR(20) NOT NULL,
`catname` VARCHAR(255) NOT NULL,
`pkg_mst_code` VARCHAR(50) NOT NULL,
`main_etc_code` VARCHAR(50) NOT NULL,
`area_code` VARCHAR(5) NOT NULL,
`area_name` VARCHAR(20) NOT NULL,
`country` VARCHAR(5) NOT NULL,
`country_name` VARCHAR(20) NOT NULL,
`city` VARCHAR(5) NOT NULL,
`city_name` VARCHAR(20) NOT NULL,
`start_city` VARCHAR(20) NOT NULL,
`max_tour_day` TINYINT(3) NOT NULL DEFAULT '0',
`min_tour_day` TINYINT(3) NOT NULL DEFAULT '0',
`type` VARCHAR(20) NOT NULL,
`img_url` VARCHAR(255) NOT NULL,
`pkg_code` VARCHAR(20) NOT NULL,
`pkg_name` VARCHAR(255) NOT NULL,
`adult_total_amt` INT(15) NOT NULL DEFAULT '0',
`child_total_amt` INT(15) NOT NULL DEFAULT '0',
`infant_total_amt` INT(15) NOT NULL DEFAULT '0',
`adult_amt` INT(15) NOT NULL DEFAULT '0',
`start_date` DATE NOT NULL DEFAULT '0000-00-00',
`start_time` VARCHAR(10) NOT NULL,
`arrive_time` VARCHAR(10) NOT NULL,
`start_air_code` VARCHAR(20) NOT NULL,
`start_air_kname` VARCHAR(50) NOT NULL,
`arrive_air_code` VARCHAR(20) NOT NULL,
`booking_status` VARCHAR(5) NOT NULL,
`special_desc` TEXT NOT NULL,
`expn_desc` TEXT NOT NULL,
`exclude_desc` TEXT NOT NULL,
`guide_cost` TINYTEXT NOT NULL,
`guide_cost_currency` VARCHAR(20) NOT NULL,
`tc_yn` VARCHAR(5) NOT NULL,
`room_type` VARCHAR(255) NOT NULL,
`room_cnt` VARCHAR(255) NOT NULL,
`room_price` VARCHAR(255) NOT NULL,
`room_option` TINYTEXT NOT NULL,
`ship_type` VARCHAR(255) NOT NULL,
`ship_section` VARCHAR(255) NOT NULL,
`ship_area` VARCHAR(255) NOT NULL,
`ship_price` VARCHAR(255) NOT NULL,
`it_use` VARCHAR(6) NOT NULL,
`regdate` DATE NOT NULL DEFAULT '0000-00-00',
`regtime` TIME NOT NULL DEFAULT '00:00:00',
PRIMARY KEY (`idx`),
UNIQUE INDEX `idx` (`idx`)
)
COMMENT='외부 상품 테이블'
COLLATE='utf8_general_ci'
ENGINE=MyISAM
ROW_FORMAT=DYNAMIC
;
뭐가 문제일까요 ?
저도 비슷한 경험을 해 본 적이 있는데,
웅파님 말씀대로 막히는 행에 홑따옴표나 특수문자 등등이 들어갔을 때 처리가 안되서 그랬었지요.
또는.. 이번 경우는 아닌 듯 하지만,
디비의 칼럼 이름이 as 처럼 sql 문에서 사용하는 예약어일 경우.. 아래처럼 ` 로 감싸줘야하는 경우도 있고요.
INSERT table SET `as` = '123';
답변 주신 모든 분들께 감사 드립니다
정답은 그지 같은게 170만건 중에 실 제 겹치지 않는 데이타가 1173개고 전부 동일 코드로 들어 오는 쓰레기 데이타 였습니다.
여행사에서 테스트 데이타를 이런걸 줬네요 ㅠ.ㅜ
아무튼 다들 감사합니다... ^^
아 참고로 데이타 처리시에 mysql_escapse_string을 주고 작업해서 따옴표 문제는 없을 듯 합니다....
혹시 input을 이빠이 받아서 루프돌면서 insert하는데, 어느순간 이후가 안되시는건가요?
만약, 그런거라면 http://codeigniter-kr.org/bbs/view/etc_qna?idx=14392&page=1&view_category=&lists_style= 설정문제일 수 있습니다.