我通过PHP脚本将数据存储到MySql数据库。数据库未存储到磁盘,但查询存储在内存中的数据库中。当我运行mysqldump时,文件大小约为130M,但当我检查位于“/ var / lib / mysql / db_name”中的文件大小时,大约是80K。我使用的引擎是InnoDB。
答案 0 :(得分:0)
你怎么知道它没有存储到磁盘上?
如果您根据这些尺码进行评估,则可能无法比较相同的事物。
db本身就是纯数据。
mysqldump包含所有冗长的实际创建语句,可以更长。
e.g。
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
答案 1 :(得分:0)
有一种方法可以检查它是否存储在磁盘或内存中。重新启动机器,如果数据仍然存在,则存储在磁盘上(这将是这种情况)。
因此,要测试进一步使用此查询以查看数据的存储位置:
SHOW VARIABLES WHERE variable_name LIKE '%datadir%'
然后在该目录中可能会有一个包含数据库名称的文件夹。在该文件夹中检查包含您的表名的文件。定义有一个(table.frm)。这可能是你看到的可以是80K的那个,还有另一个(tablename.ibd)保存数据。