方案架构选择需要根据业务具体场景选用最适合的架构,鲲鹏BoostKit数据库使能套件白皮书只提供典型架构参考,开源数据库部分客户根据具体业务选择所需的方案架构,商业数据库部分由数据库厂家提供技术方案和支持。
开源MySQL是典型的
OLTP的基本特点:
MySQL原理如图1所示。
MySQL原理图各个组件说明如表1所示。
组件 |
说明 |
---|---|
Connectors |
与其他编程语言中的SQL语句进行交互,如PHP、Java等。 |
Management Serveices & Utilities |
系统管理和控制工具。 |
Connection Pool(连接池) |
管理缓冲用户连接,线程处理等需要缓存的需求。 |
SQL Interface(SQL接口) |
接受用户的SQL命令,并且返回用户需要查询的结果。例如select from就是调用SQL Interface。 |
Parser(解析器) |
SQL命令传递到解析器的时候会被解析器验证和解析。 主要功能:
|
Optimizer( |
SQL语句在查询之前会使用查询优化器对查询进行优化(产生多种执行计划,最终数据库会选择最优化的方案去执行,尽快返回结果),他使用的是“选取-投影-联接”策略进行查询。 |
Caches和Buffers(查询缓存) |
如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。 这个缓存机制是由一系列小缓存组成的。例如表缓存、记录缓存、key缓存、权限缓存等。 |
Storage Engines(存储引擎) |
存储引擎是MySQL中具体的与文件打交道的子系统,也是MySQL最具有特色的一个地方。 MySQL的存储引擎是插件式的。它根据MySQL AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎)。 |
MySQL参考架构如图2所示。
包括以下几种常用参考架构:
两实例以上部署或分布式架构下建议每台服务器部署多实例绑定CPU收益更大。