mysql架构说明
JDBC: Java连接数据库驱动
ODBC:开放数据库互连
. net:。净连接数据库驱动
PHP: PHP连接数据库驱动
Perl: Perl连接数据库驱动
Python: Python连接数据库驱动
Ruby: Ruby连接数据库驱动
Cobol: Cobol连接数据库驱动
<强>连接池:强>
MySQL是单进程多线程工作模式,所以必须维护一个线程池。管理大量线程对大量客户端并发请求进行并发响应。
<>强身份验证:>强认证,用户名密码等。
<强>线程重用:>强线程重用。(当一个用户连接请求进来之后,需要一个线程来进行响应。当用户退出,这个线程并不是被销毁,而是清理此线程重新收归到线程池当中的空闲线程中)
<强>连接限制:>强线程池的大小决定了连接并发数的上限。
<强>检查内存:>强线程内存检查
<强>缓存:>强线程缓存。
<强> SQL接口:强>类似于MySQL的壳,SQL命令的解释器,支持过程式编程,支持视图,存储过程,存储函数,触发器,分析语法问题等等。
<强>解析器:强> SQL语句分析器,并不分析语法问题,进行语句的执行分析。查询翻译,将一个查询语句转化成对应的可以识别的语句,能在本地执行的特定操作。分析是对某个对象有访问权限等。
<强>优化器:>强负责检查多条路径及每条路径的开销,评估开销(开销的计算依赖于索引,动态生产的统计数据,内部组件等)。生成统计数据等。
<强> Caches&缓冲区:强> MySQL的某些存储引擎,将访问到的频繁的热点数据装入内存,用户直接访问内存便于访问。所MySQL需要维护一个Caches&缓冲区。
<强>可插拔存储引擎:强>
插件式存储引擎.MyISAM, InnoDB, NDB,存档,内存等,存储引起负责把具体分析的结果(优化),完成对磁盘上文件的路径访问的转换。
存储引擎需要把语句映射到磁盘块,并将磁盘块加载到内存中。
<强>文件系统:>强物理视图,在操作系统级别,MySQL的数据存储为一个个文件。
<强> Files&日志:强>
,,重做,重做日志
,,撤销:撤销日志
,,数据:数据文件
,,指数:索引文件
,,二:二进制日志文件
,,错误:错误日志
,,查询和缓慢:查询日志和慢查询日志
<强> 强>
- <李>
1。各种客户端通过连接器,交由连接线程处理。负载连接线程的创建、管理,销毁等。
李> <李>2。用户发出语句后,由分析器进行分析。如果是查询语句,直接进入查询缓存。
李> <李>3。如果命中,直接返回,如果未命中。则继续交给优化器。
李> <李>4。优化完成以后,交给存储引擎负责对应的文件系统,取到相关的数据。加载到内存中,由存储引擎挑选出对应的行或符合条件的行。
李>