programing

MySQL LOAD DATA INFILE은 이후에 메모리를 지우지 않습니다.

sourcejob 2023. 10. 1. 19:24
반응형

MySQL LOAD DATA INFILE은 이후에 메모리를 지우지 않습니다.

MariaDB 10.3.23 데이터베이스에 CSV-파일을 로드하는 CSV-Importer를 만들고 있습니다.이를 위해 저는 PHP 7.4 환경의 Laravel 7 안에서 다음과 같은 코드를 사용하고 있습니다.

$query = <<<eof
        LOAD DATA LOCAL INFILE '$this->filePath'
        INTO TABLE `$tableName`
        $characterSet
        FIELDS TERMINATED BY '$this->delimiter'
        ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES;
eof;

DB::connection()->getpdo()->exec($query);

ploi.io 을 사용하여 웹 사이트를 배포하고 모니터링하고 있으며 모니터링 페이지에는 다음 화면이 표시됩니다.

enter image description here

MariaDB 서비스를 다시 시작했을 때 RAM 디스플레이 라인은 15%이지만, 새로 가져오기를 시작할 때마다(따라서 새로운 LOAD DATA INFILE) 사용된 RAM의 양이 급증하고(이상하지 않음) 계속 유지됩니다.RAM 라인의 높이 차이는 CSV 파일 크기의 차이 때문입니다.데이터를 로드하고 나중에 사용하던 메모리를 비우지 않는 것처럼 보입니다.

이 문제를 해결할 방법이 있습니까?

ps. 저는 인프라/디브를 잘 못해서 더 많은 정보가 필요하시면 말씀해주세요.

SHOW TABLE STATUS LIKE 'the_file_name';

그런 다음 Data_length + Index_length를 추가합니다.그것은 소비된 공간에 대한 것인데, 방출되지 않은 공간에 대한 것입니까?

의 가치는?innodb_file_per_table?

언급URL : https://stackoverflow.com/questions/63371615/mysql-load-data-infile-does-not-clear-memory-afterwards

반응형