我环顾谷歌但没有找到任何好的答案。它将数据存储在一个大文件中吗?它使用什么方法使数据访问比仅仅读写常规文件更快?
这个问题有点老了,但我还是决定回答它,因为我一直在对此进行一些挖掘。我的答案是基于linux文件系统。基本上 mySQL 将数据存储在硬盘的文件中。它将文件存储在具有系统变量“datadir”的特定目录中。开设一个mysql
控制台并运行以下命令将告诉您该文件夹的确切位置。
mysql> SHOW VARIABLES LIKE 'datadir';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.01 sec)
从上面的命令可以看到,我的“datadir”位于/var/lib/mysql/
。 “datadir”的位置在不同的系统中可能有所不同。该目录包含文件夹和一些配置文件。每个文件夹代表一个 mysql 数据库,并包含包含该特定数据库数据的文件。下面是我的系统中“datadir”目录的屏幕截图。
目录中的每个文件夹代表一个MySQL数据库。每个数据库文件夹都包含代表该数据库中的表的文件。每个表有两个文件,一个带有.frm
扩展名和另一个带有.idb
扩大。请参阅下面的屏幕截图。
The .frm
表文件存储表的格式。细节:MySQL .frm 文件格式 https://dev.mysql.com/doc/internals/en/frm-file-format.html
The .ibd
文件存储表的数据。细节:InnoDB 每表文件表空间 https://dev.mysql.com/doc/refman/5.7/en/innodb-multiple-tablespaces.html
就是这样,伙计们!我希望我帮助了某人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)