以前一直把数据库和数据库实例弄混淆,最近读《MySQL 技术内幕 InnoDB 存储引擎》得到了答案。
定义:
数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据库文件可以是frm、MYD、MYI、ibd结尾的文件。
实例:MySQL数据库和后台线程以及一个共享内存区组成。共享内存区可以被运行的后台线程共享。
注意:数据库指的是我们存放数据的介质(一般来说位于磁盘上的二进制文件),数据库是文件的集合。数据库实例是程序,是位于用户与操作系统之间的一层数据管理软件,我们对数据库的操作都是在数据库实例下操作的,应用程序只有通过数据库实例才能和数据库交互。
举例:
我们现在需要向员工表employee中插入一条数据,sql大概是这样的
INSERT INTO employee(name, age, address) VALUES('Tom', 24, '四川');
我们是不能直接操作数据库文件来改变数据库的内容,需要通过数据库实例来完成对数据库的操作。
需要牢记的是,数据库实例才是真正操作数据库文件的。
对应关系:
在MySQL数据库中,实例与数据库的关系通常是一一对应的,一个数据库对应一个实例。但是,在集群情况下可能存在一个数据库被多个数据库实例使用的情况。