《MySQL技术内幕——InnoDB存储引擎》读书笔记(一)——MySQL体系结构和存储引擎

一、定义数据库和数据库实例

数据库 (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;







你可能感兴趣的:(mysql数据库)