2.1 MYSQL服务结构mySQL是一个典型的c/s模式,由服务端和客户端组成。服务端:mysqld客户端:mysql客户端自带程序:mysql,mysqladmin,mysqldump等2.2 MYSQL连接方式TCP/IP连接方式mysql -uroot -p123456 -h IP套接字连接(也可以称为网络套接字连接)mysql -uroot -p123 -S /tmp/mysql.socksock是可以在/etc/my.cnf中自己指定目录像我们常用的mysql -uroot -p123456 就是采用套接字连接的2.3 MYSQL的启动过程启动后台守护进程,并生成工作线程预分配内存结构供MySQL处理数据使用2.4 MYSQLD的服务器程序构成2.4.1 连接层通信协议:TCP/IP 线程:连接数量验证:用户名,用户密码2.4.2 SQL层SQL:结构化的查询语言(数据库内部的逻辑语言)DDL:数据库定义语言DCL:数据库控制语言DML:数据库操作语言DQL:数据查询语言SQL层的功能1、判断语法、语句、语义语句类型:DQL select2、数据库不能真正理解SQL语句必须明确的知道,数据在哪个磁盘的,哪个文件的哪个,哪个页上。数据库对象授权情况进行检查。3、解析(解析器)将sql语句解析成N种执行计划4、优化 (优化器)5.6以后学习了oracle,基于代价算法,从N中执行计划中选择代价最小的交给“执行器”5、“执行器”运行执行计划生成如何去磁盘找数据方式6、将取数据获取的方式,交由下层(存储引擎层)进行处理 7、最终,将取出的数据抽象成 管理员或用户能看懂的方式(表),展现用户面前。8、查询缓存:缓存之前查询的数据。假如我们查询的表是一个经常有变动的表,查询缓存不要设置太大。SQL处理流程:2.4.3存储引擎层存储引擎是充当不同表类型的处理程序的服务器组件。存储引擎层的功能存数据、取数据 (往磁盘上读写,相当于中介)数据的不同存储方式 不同的管理方式:事务(增、删、改)备份恢复 高级功能(高可用的架构、读写分离架构)特殊功能:全文搜索引用完整性空间数据处理存储引擎用于:存储数据检索数据通过索引查找数据双层处理上层包括SQL解析器和优化器下层包含一组存储引擎SQL 层不依赖于存储引擎:引擎不影响SQL处理有一些例外2.5 MYSQL逻辑结构(数据库内部结构)逻辑构成是为了用户能够读懂数据出现的管理数据的一种方式。对象:库中包含表,在linux中以目录表示表中有列结构与行记录,在linux中以多个文件表示行记录列结构2.6 MYSQL的存储方式程序文件随数据目录一起存储在服务器安装目录下。执行各种客户机程序、管理程序和实用程序时将创建程序可执行文件和日志文件。首要使用磁盘空间的是数据目录。服务器日志文件和状态文件:包含有关服务器处理的语句的信息。日志可用于进行故障排除、监视、复制和恢复。InnoDB 日志文件:(适用于所有数据库)驻留在数据目录级别。InnoDB 系统表空间:包含数据字典、撤消日志和缓冲区。每个数据库在数据目录下均具有单一目录(无论在数据库中创建何种类型的表)。数据库目录存储以下内容:数据文件:特定于存储引擎的数据文件。这些文件也可能包含元数据或索引信息,具体取决于所使用的存储引擎。格式文件 (.frm):包含每个表和/或视图结构的说明,位于相应的数据库目录中。触发器:与某个表关联并在该表发生特定事件时激活的命名数据库对象。数据目录的位置取决于配置、操作系统、安装包和分发。典型位置是 /var/lib/mysql。MySQL 在磁盘上存储系统数据库 (mysql)。mysql 包含诸如用户、特权、插件、帮助列表、事件、时区实现和存储例程之类的信息。
mysql -uroot -p123456 -h IP
mysql -uroot -p123 -S /tmp/mysql.sock