내가 라인으로 데이터 피드 라인을 읽고 분석하고 MyISAM 테이블에 데이터를 삽입하는 방법이있다. 처음 시작하면 1 초에 약 1000 개의 레코드가 될 것입니다. 시간이 진행됨에 따라 느려지고 느려지므로 지금 당장 180 초마다 약 1 행이됩니다.쿼리
함수의 일반 구문은 다음과 같습니다 구문 분석
function parse($file) {
$handle = fopen($file, 'r');
while (!feof($handle)) {
$line = fgets($fileHandle, 1000);
switch (substr($line, 0, 2)) { //gets record type
case '01' :
//parse the record
//escapes some strings with mysql_real_escape_string()
mysql_query('INSERT INTO table VALUES ($a, $b, $c...');
case '02' :
...
}
}
}
현재 파일은 몇 만 개 기록을 가지고있다. 서버가 메모리 공간을 잃어 버리지 않는 것 같습니다. 프로세스가 느려질 수있는 원인을 아는 사람이 있습니까?
테이블에 색인이 있습니까? 색인 업데이트가 원인 일 수 있습니다. 또한 얼마나 자주 저지르는가? –
'테이블'에 대한 색인 생성이 있습니까? – bensiu
@bensiu & @Jim Garrison - INSERT에 대한 인덱싱이 필요한 이유는 무엇입니까? – FeRtoll