MySQL文件系统

芯片架构以及指令集

* 计算机指令系统
  * 计算机中央处理器的设计模式:复杂指令集(CISC)和精简指令集(RISC)两部分
  * 微电子技术、微电子机械系统
  * 处理器:32bit 和64bit

安装的操作系统平台,以及安装平台下的限制

* windows下:目录和文件名、文件名大小写、目录的分隔符、管道操作隐患、最大可用内存、端口限制、文件系统
* Linux下:源码安装和使用编译好的二进制文件安装
* Unix
* 操作系统:32bit 和64bit

MySQL中数据库是个操作系统层的目录

安装文件:

bin文件夹下是:可执行文件 mysql.exe、 mysqld
data文件夹下是:数据库文件
include文件夹下是:头文件 ,mysql.h errmsg.h
lib文件夹下是:库文件,又有两个子文件夹 Plugin 和debug
share文件夹下是:字符集与语言等信息
support-files文件夹下是支持文件,包含Solaris文件
my.ini文件:参数配置文件

data文件夹下是:数据库文件

系统默认创建的数据库

 mysql:记录用户权限、帮助、日志等信息  
 performance——schema:服务性能指标库  
 information_schema:记录用户、表、视图的元数据信息,是虚拟出来的视图,所以在文件夹下没有

用户创建的数据库:

 表对象数据文件:frm:表对象的结构定义文件,所有存储引擎都会有的文件,frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等
         db.opt文件 ,该文件主要用来存储当前数据库的默认字符集和字符校验规则。collation<校验>
         .ibd 文件,InnoDB引擎专用文件,是单表表空间文件,每个表使用一个表空间文件(file per table),存放用户数据库表数据和索引,
         .myd文件:MyISAM 引擎专用的数据文件
         .myi文件:MyISAM 引擎专用的索引文件
         .scv文件:CSV引擎专用的数据文件
         .arz
         .pid 文件:进程ID文件

日志文件

  • 记录错误信息的日志
    服务进程运行时发生的关键错误<可以指定路径和文件名,默认的lenovo-01.err>
    错误日志文件 Note 、Warning、 Error三类信息
  • 记录查询信息的日志
    查询日志文件<文本格式>:用于审计
    slow query log
    general query log :记录mysqld进程几乎所有的操作,通常不被启用,记录内容太详细,安全性和效率就要考虑了 配置查询日志
  • 记录数据库中的修改事件
    二进制日志,用于复制和恢复
    二进制日志文件
    使用专用的工具查询mysqlbinlog.exe ,记录的格式有所不同,有基于行格式记录
    基于语句记录、 以及基于混合模式记录的
  • 记录当前复制环境、进度的 中继日志文件 中继日志信息文件 Master信息日志文件
  • mysql 配置文件

附录:

mysqld.exe 是MySQL后台程序(即MySQL服务器)。要想使用客户端程序,该程序必须运行,因为客户端通过连接服务器来访问数据库。  
mysql.exe  是MySQL自带的命令行客户端工具,是交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具。
简单来说:mysqld是用来启动mysql数据库的命令,mysql则是打开并执行sql语句的命令。

mysqld端的配置

Option_name [mysqld] port #:MySQL数据库的端口
basedir #:MySQL的安装路径
datadir #:MySQL数据文件的存储位置
character-set-server=utf8 #:服务器端默认的字符集
collation-server=utf8_general_ci #:服务器端默认的校对规则
default-storage-engine=INNODB #:默认的存储引擎
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" #:表示SQL模式的参数,设置检验SQL语句的严格程度
max_connections=512 #:表示允许同时访问MySQL最大连接数<其中一个预留给管理员登陆>

query_cache_size=0 #:表示查询时缓存的大小 table_cache=256 tmp_table_size=18M #:内存中临时表的最大值

thread_cache_size=8 #:保留客户端线程的缓存 myisam_max_sort_file_size=64G myisam_sort_buffer_size=35M key_buffer_size=25M read_buffer_size=64K read_rnd_buffer_size=256K sort_buffer_size=256K

innodb_additional_mem_pool_size=2M #:表示附加的内存池,用来存储InnoDB表的内容
innodb_flush_log_at_trx_commit=1 #:表示 设置提交日志的时机
innodb_log_buffer_size=1M #:表示用来存储日志数据缓冲区的大小
innodb_buffer_pool_size=47M #:表示缓存大小,InnoDB用缓存池来保存索引和原始数据
innodb_log_file_size=24M #:日志文件大小
innodb_thread_concurrency=8 #:表示InnoDB存储引擎允许的线程最大数
innodb_lock_wait_timeout = 288000000 #:设置锁等待时间
max_allowed_packet = 1024M #:服务器接受的数据包大 eg:sql文件过大,会出现"MySQL server has gone away"问题 wait_timeout=288000000 (1)interactive_timeout: 参数含义:服务器关闭交互式连接前等待活动的秒数
(2)wait_timeout:参数含义:服务器关闭非交互连接之前等待活动的秒数。

表对象数据文件

db.opt文件 ,该文件主要用来存储当前数据库的默认字符集和字符校验规则。collation<校验>  
.frm       ,frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等    
.ibd       ,是单表表空间文件,每个表使用一个表空间文件(file per table),存放用户数据库表数据和索引,InnoDB引擎专用文件  
.myd       ,MYD文件用来保存MyISAM表的数据<表的数据记录>,专属于MyISAM存储引擎的
.myi       ,MYI文件用来存放MyISAM表的索引信息,专属于MyISAM存储引擎的
.csm
.csv       ,CSV引擎专用的数据文件
.arz       ,archive引擎专用数据文件
MyISAM表结构
InnoDB表结构

当配置好MySQL数据库服务后,系统会默认的创建4个库;具体

information_schema
perfoemance_schema
mysql
test
schema [ˈski:mə] 在MySQL中和database是可以等效的 information_schema,数据字典信息库,只读视图,mysql启动的时候所加载的系统参数信息。所以没有实际的物理存储 对于该库,用户拥有查询功能
perfoemance_schema,服务性能指标库
mysql ,记录用户权限、帮助、日志等信息
test ,测试库

blogroll

social