MySQL schema表示数据库的逻辑结构,它定义了数据库中的所有对象(例如表、视图、函数和存储过程等)的结构和属性。在MySQL中,schema以文件形式存储在数据库目录中。
MySQL的数据目录是数据存储在磁盘上的位置。数据目录中有一个子目录,称为数据库目录或DB目录。每个数据库都有一个以其名称命名的目录。在该目录中,可以找到存储有关该数据库的所有信息的文件,包括表结构和数据以及其他有关该数据库的信息。
对于每个数据库,MySQL存储两个重要的文件,即“*.frm”和“ibdata1”文件。其中“*.frm”文件包含有关表结构的元数据,而“ibdata1”文件包含表数据和其他对象的元数据。在MySQL 5.6之前,MySQL还存储了一个文件名为“*.MYD”的表数据文件和一个文件名为“*.MYI”的表索引文件,这些文件将数据和索引分开存储。但是,在MySQL 5.6版本中,这些文件已被废弃。
因此,可以得出结论,MySQL schema存储在数据库目录的“*.frm”和“ibdata1”文件中。
[root@localhost mysql]# cd /var/lib/mysql/test_db [root@localhost test_db]# ls -l total 2344 -rw-rw----. 1 mysql mysql 8683 Nov 28 16:43 customer.frm -rw-rw----. 1 mysql mysql 2408088 Nov 28 16:21 ibdata1 -rw-rw----. 1 mysql mysql 98304 Nov 28 16:43 order.frm -rw-rw----. 1 mysql mysql 450 Nov 28 16:43 product.frm
在上面的示例中,可以看到包含有关“test_db”数据库的表结构的“*.frm”文件(例如“customer.frm”、“order.frm”和“product.frm”文件)以及包含有关表数据和其他元数据的“ibdata1”文件。