一、定义数据库和数据库实例
数据库 (database): 物理操作系统文件或其他形式文件类型的集合
实例(instance) : MySQL数据库由后台线程以及一个共享内存区组成,共享内存可以被运行的后台线程所共享,数据库实例才是真正用于操作数据库文件的
MySQL数据库实例在系统上的表现就是一个进程。
当启动实例时,MySQL数据库会去读配置文件,根据配置文件的参数来启动数据库实例。
在MySQL数据库中,可以没有配置文件,在这种情况下,MySQL会按照默认参数设置启动实例。
MySQL数据库是按 /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf /.my.cnf 的顺序读取配置文件 以读取到的最后一个配置文件中的参数为准
Linux环境下,配置文件一般放在 /etc/my.cnf下
配置文件中有一个参数 datadir , 该参数指定了数据库所在的路径。Linux中,默认datadir 为 /usr/local/mysql/data,用户可以修改该参数
查看命令: show variables like 'datatdir' \G
MySQL的组成部分:
(1)连接池组件 Connections Pool (2) 管理服务和工具组件 Management Service & Utilities (3) SQL接口组件 SQL Interface
(4)查询分析器组件 Parser Quary Translation Object Privilege (5) 优化器组件 Optimizer Access Paths (6) 缓冲组件 Cache
(7)插件式存储引擎 Pluggable Storage Engines (8)物理文件 File
存储引擎是基于表的,而不是数据库。
MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持,这些标准和存储引擎本身无关,可能是每个数据库系统本身都必须的,如SQL分析器和优化器等,
而存储引擎是底层物理结构的实现,由于MySQL数据库的开源特性: 用户可以根据MySQL预定义的存储引擎接口编写自己的存储引擎。
通过: show engines 查看当前使用的MySQL数据库所支持的存储引擎
设置创建表的存储引擎: create table test( id int ) engine=InnoDB;
修改表的存储引擎: alter table test engine=MyISAM;