0

我通过 PHP 脚本将数据存储到 MySql 数据库。数据库没有存储到磁盘,但查询存储在内存中的数据库中。当我运行 mysqldump 时,文件大小约为 130M,但当我检查位于“/var/lib/mysql/db_name”中的文件大小时,它约为 80K。我使用的引擎是 InnoDB。

4

2 回答 2

0

有一种方法可以检查它是否存储到磁盘或内存中。重新启动机器,如果数据仍然存在,则将其存储在磁盘上(就是这种情况)。

因此,要进一步测试,请使用此查询来查看数据的存储位置:

SHOW VARIABLES WHERE variable_name LIKE '%datadir%'

然后在该目录中可能会有一个带有数据库名称的文件夹。在该文件夹中检查具有您的表名的文件。有一个用于定义(table.frm)。这可能是您看到的可能是 80K 的那个,还有另一个 (tablename.ibd) 保存数据。

于 2012-10-11T15:41:25.377 回答
0

你怎么知道它没有被存储到磁盘?

如果您根据这些尺寸进行评估,您可能不会比较相同的东西。

数据库本身只是纯数据。

mysqldump 包含所有冗长的实际创建语句,这些语句可能更长。

例如

Data: 1,5000,23,300  4 bytes.

Create statements from backup:
insert into summary_categories(category_sum_product) values (1);
insert into summary_categories(category_sum_product) values (5000);
insert into summary_categories(category_sum_product) values (12);
insert into summary_categories(category_sum_product) values (300);
= 262 characters/bytes
于 2012-10-11T00:29:48.980 回答