Mysql原理
2016-09-24 21:44
85 查看
首先要了解原理。不得不说说。mysql的执行流程。
Mysql是一个单进程的服务,对于每一个请求都是用线程来相应的。这就需要一个连接器来处理新用户的请求、相应,以及销毁。
1.客户端请求,服务端(连接器)开辟线程相应用户
2.用户发起SQL语句查询数据库
3.查询缓存:记录用户的SQL查询语句。如果挨次查询同样内容。就返回缓存
4.如果缓存没有进入分析器。(分析器也可能借鉴缓存)
不得不说说:
语法分析器。用户命令语法是否正确。将用户的命令进行切片。一个词一个词。用空格隔开。获得用户要查询的表。内容,权限等。
5.优化:执行路径的选择,生成执行树,
每一个SQL语句都有很多执行路径。优化的目的就是在这些执行路径里面,选择一个最优的执行路径。
6.存储引擎:用于管理存储在文件系统。甚至是裸设备上的数据管理程序,它本身给上层应用提供不同的管理,有的支持事务,有的不支持事务。
我们在来了解一下数据库的对象
逻辑对象:表,微微关系,索引,视图,触发器,存储过程,存储函数,时间调度器,游标,用户。
物理对象:数据管理组件(也可称为元数据),存储引擎,存储为物理文件。
数据库管理系统的基本功能:
管理存储,安全管理,元数据管理,事务管理,ACID(原子性,一致性,隔离性,持久性),连接管理,性能优化,备份和还原机制,相应数据查询/修改请求。
存储引擎:将数据存储下来的中间层
MyISAM,InnoDB,NDB,Arcglve,Federated,Memory,Merge:合并,多表合并成一个
rawdevice:裸设备,没有格式化。
Mysql是一个单进程的服务,对于每一个请求都是用线程来相应的。这就需要一个连接器来处理新用户的请求、相应,以及销毁。
1.客户端请求,服务端(连接器)开辟线程相应用户
2.用户发起SQL语句查询数据库
3.查询缓存:记录用户的SQL查询语句。如果挨次查询同样内容。就返回缓存
4.如果缓存没有进入分析器。(分析器也可能借鉴缓存)
不得不说说:
语法分析器。用户命令语法是否正确。将用户的命令进行切片。一个词一个词。用空格隔开。获得用户要查询的表。内容,权限等。
5.优化:执行路径的选择,生成执行树,
每一个SQL语句都有很多执行路径。优化的目的就是在这些执行路径里面,选择一个最优的执行路径。
6.存储引擎:用于管理存储在文件系统。甚至是裸设备上的数据管理程序,它本身给上层应用提供不同的管理,有的支持事务,有的不支持事务。
我们在来了解一下数据库的对象
逻辑对象:表,微微关系,索引,视图,触发器,存储过程,存储函数,时间调度器,游标,用户。
物理对象:数据管理组件(也可称为元数据),存储引擎,存储为物理文件。
数据库管理系统的基本功能:
管理存储,安全管理,元数据管理,事务管理,ACID(原子性,一致性,隔离性,持久性),连接管理,性能优化,备份和还原机制,相应数据查询/修改请求。
存储引擎:将数据存储下来的中间层
MyISAM,InnoDB,NDB,Arcglve,Federated,Memory,Merge:合并,多表合并成一个
rawdevice:裸设备,没有格式化。
相关文章推荐
- mysql 命令行操作入门(详细讲解版)
- mysql 的读写分离 以及mycat 实现集群管理
- 如何通过命令窗口创建MySQL数据库和表
- mysql-递归查询
- Ubuntu 12.04 LTS 配置python数据挖掘编程环境与mySQL
- mysql如何修改数据库目录
- MySQL优化聊两句
- Mysql添加列,修改列,删除列,查看约束,添加约束,删除约束 添加列,修改列,删除列
- 如何收缩Mysql的ibdata1文件
- mysql占用内存高的问题
- mysql 使用外键 foreign key 时的错误解决
- mysql搭建及数据迁移教程
- 注册码系统V2升级MySQL专版
- mysql数据库启动停止
- 百宝云注册码系统_mysql版
- Mysql基本命令
- mysql备份脚本
- List of all MySQL commands
- MySQL 存储过程传参之in, out, inout 参数用法
- MYSQL 常用命令