MySQL的原理,安装和基本使用

2014-11-24 18:25:38 · 作者: · 浏览: 0

mysql执行流程:


mysql是一个单进程的服务,对于每一个请求都是用线程来响应的,这就需要一个连接器来处理新用户的请求,响应,销毁




1.客户端请求,服务器端(连接器)开辟线程响应用户


2.用户发起SQL语句查询数据库


3.查询缓存:记录用户的SQL查询语句,如果再次查询同样内容,就返回缓存


4.如果缓存没有进入分析器:(分析器也可能借签缓存)


语法分析器:用户命令语法是否正确


词法分析器:将用户的命令进行切片,一个词一个词用空格隔开,获得用户要查询的表,内容,用户的权限等


5.优化:执行路径的选择,生成执行树


每个SQL语句都有很多执行路径,优化的目的就是在这些执行路径里选择一个最优的执行路径


6.存储引擎:用于管理存储在文件系统,甚至是裸设备上的数据管理程序,它本身给上层应用提供不同的管理,有的支持事务,有的不支持事务。




#查询缓存可以大大加速这个过程,不过缓存本身可能带来劣势,假如一个用户要查询一个数据,正好缓存里有,而在之前,这条数据刚刚被修改过那么返回的缓存结果就是过时的。




MYSQL的结构:




客户端:mysql


连接器: NativeC API 本地C语言接口


JDBCJAVA数据库连接器


连接池(conetcionpool):它的后方是MYSQL的真正功能


SQL接口:用户通过sql客户端发过来的命令,由sql接口接收


DML数据操作语言:查询,修改,升级数据等


DDL数据定义语言:创建一个新的数据库,新的索引,删除一个用户等


存储过程视图触发器




Parser:分析器


查询 事务 对象权限



optimizer:访问路径


生成执行树




caches&buffers:缓存和缓存


优化里最重要的是缓存的优化




pluggablestroage engines存储引擎(插件式):将逻辑结构转换为物理结构的程序


ManagementServices & Utilites工具:备份,恢复,安全,移植,集群等,这些工具一般和文件系统打交道,不需要和mysql-server打交道,它们对应的都是命令。



数据库对象:(逻辑)


表,二维关系


索引


视图


触发器


存储过程


存储函数


事件調读器


游标


用户




物理


文件




将数据库对象和物理对象对应起来就是存储引擎


Mysql


*插件式的存储引擎




mysqlmysql的连接方式:tcp,socket,pipe,memory




mysql的交互方式:interact batch




SQL


结构化查询语言


bash


select,update,create,drop


Mysql安装


版本选择:


GA


RC


beta


alpha




在以后的使用过程中,RPM包很方便,但是会带来各种问题,所以尽量使用编译安装甚至是LFS


Mysql-client


Mysql-devel:编译安装软件包,需要用到Mysql的时候才安装这个软件包


Mysql-embedded: mysq嵌入式


Mysql-ndb-management


Mysql-server


Mysql-shared:可能被客户端或者服务器端的某些工具用到


Mysql-shared-compat


Mysql-test:测试Mysql,提供测试组件




一般来讲,完全的MYSQL只需要安装clientdevel share server




安装目录的作用


bin


data默认情况下将数据和索引存放的目录


inclued


lib


man


mysql-test


scripts安装时的初始化脚本


share某种特定语言的错误信息的,信息原始文件存放


sql-bench压力测试工具


support-file提供一些初始化的文件和脚本