如何解决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部署和监视我的网站,该网站在监视页面上显示以下屏幕:
当我重新启动MariaDB服务时,RAM的显示线为15%,但是每当我开始一个新的导入(并因此一个新的LOAD DATA INFILE)时,使用的RAM量就会增加(不是) RAM行高度的差异是由于CSV文件大小的差异。看起来它正在执行数据加载,并且之后不会清空正在用于它的内存。
关于如何解决此问题的任何想法?
ps。我不太擅长infra / devops,所以如果你们需要更多信息,请告诉我。
解决方法
执行SHOW TABLE STATUS LIKE 'the_file_name';
然后添加数据长度+索引长度。那是关于已消耗但未释放的空间量吗?
innodb_file_per_table
的值是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。