MySQL LOAD DATA INFILE之后不会清除内存

问题描述

我正在创建一个CSV导入器,将CSV文件加载到MariaDB 10.3.23数据库中。为此,我在带有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。我不太擅长infra / devops,所以如果你们需要更多信息,请告诉我。

解决方法

执行SHOW TABLE STATUS LIKE 'the_file_name';

然后添加数据长度+索引长度。那是关于已消耗但未释放的空间量吗?

innodb_file_per_table的值是什么?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...