mysql产品:cpl协议和商业版本 mysql
cpl协议:单机、集群版本 sql
商业:经典、标准、企业、集群 数据库
2、存储引擎: 服务器
一、mysql server:mysqld程序.(相似于oracle的instance) 多线程
存储引擎:建表是要选存储引擎,不选默认是myIsam引擎。查看你的mysql当前默认的存储引擎
show variables like '%storage_engine%'; oracle
二、服务器和主机:客户端和服务器 线程
parse-->optimize-->execute [mysql database management level |(mysqld)] server
myIsam/innodb/mysql cluster/falcon/other... [storage engine implementation] 索引
file system 进程
hardware
三类程序:服务器程序、客户端程序、非客户端程序
客户端程序是经过服务器(mysqld)来访问,mysqld是经过存储引擎来访问数据的。非客户端程序能够直接访问存储引擎不须要经过mysqld来访问。
启动服务器:mysqld --console
关闭服务器:mysqladmin -uroot -poracle shutdown;
三、数据库逻辑上是表的集合,物理上是文件的集合。
建一个数据库就是建了一个文件夹,生成一个.opt文件存放数据库属性如字符集和校验等,建一个表就会根据不一样的存储引擎产生不一样的文件:
select @@datadir;配置数据库数据存放目录
select @@basedir;配置数据库根目录
都会建一个.frm文件,存放表结构.
myIsam引擎:会生成.myd(数据文件)、.myi(索引文件)
innodb引擎:会生成.idb或者.ibdata文件,看配置是用共享表空间存放数据和索引仍是用独享表空间存放数据和索引,独享表空间存放的话每一个表会生成一个.ibd文件。
select @@innodb_data_file_path;配置每个文件的名称,也能够只配置该参数,而不配置..._home_dir.
select @@innodb_data_home_dir;配置ibdataba数据存放目录
四、mysql是单进程多线程
五、存储引擎在服务器和表级别均可以设置
show engines;--看你的mysql如今已提供什么存储引擎: show variables like '%storage_engine%';--看你的mysql当前默认的存储引擎: show create table 表名;--要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):