最近,我编写了一个python代码,将HTML文本插入到表中。在我写了大约200000个html页面的代码之后,我可以使用select来检索所有这些数据。然而,我发现MySQL服务器没有将任何数据写入文件。我检查了内存使用情况,发现mysqld.exe程序消耗的内存超过1.5GB。我搜索了整个磁盘上的表名,但只找到了一个与我的表名相关的9KB文件。顺便说一下,我还检查了mysql.ini文件。路径配置正确。然后,我使用mysqldump来备份该表。这个命令提供了超过7GB的sql文件。我再次检查它,发现在我的datadir文件夹中有20GB的文件ibdata。那个文件是什么意思?为什么没有与我的表相关的文件?MySQL只是将数据存储在内存中吗?
运行SHOW TABLE STATUS
并检查存储引擎值。它可能使用MEMORY
,但如果是的话,我会感到惊讶,而你不知道(因为你必须明确设置它)。
也许您在InnoDB上,但还没有启用innodb_file_per_table
,所以所有内容都被写入一个文件。