当前位置: 首页 > news >正文

苏州品牌网站制作公司外贸人才网属于什么电子商务模式

苏州品牌网站制作公司,外贸人才网属于什么电子商务模式,3d建模软件推荐,高清免费爱做网站面试问到Mysql模块划分与架构体系怎么办 文章目录 1. 应用层连接管理器#xff08;Connection Manager#xff09;安全性和权限模块#xff08;Security and Privilege Module#xff09; 2. MySQL服务器层2.1. 服务支持和工具集2.2. SQL Interface2.3. 解析器举个解析器 …面试问到Mysql模块划分与架构体系怎么办 文章目录 1. 应用层连接管理器Connection Manager安全性和权限模块Security and Privilege Module 2. MySQL服务器层2.1. 服务支持和工具集2.2. SQL Interface2.3. 解析器举个解析器 例子理解一下 2.4. 优化器举个优化器 例子理解一下 2.5. 缓存 3. 存储引擎层3.1. 可插拔的特性3.2. 常见的MySQL存储引擎包括 参考文档 图片来源 https://www.rathishkumar.in/2016/04/understanding-mysql-architecture.html 1. 应用层 这是MySQL架构中的最上层有的文章里叫做网络接入层可以在许多客户端 - 服务器架构中看到这个层。这一层包括一些大多数客户端 - 服务器应用程序的常见服务核心就干三件事 连接处理、身份验证、安全。 连接管理器Connection Manager 当客户端连接到服务器时客户端会为其连接获得自己的线程。所有来自该客户端的查询都在指定的线程内执行。线程由服务器缓存因此不需要为每个新连接创建和销毁。 安全性和权限模块Security and Privilege Module 在客户端成功连接到MySQL服务器后服务器将检查该客户端是否有权限对MySQL服务器发出某些查询。 2. MySQL服务器层 这一层负责MySQL关系数据库管理系统的所有逻辑功能。MySQL服务器的大脑位于这一层。MySQL的逻辑层分为几个子组件包括服务接口和工具集、SQL接口、SQL解析器、优化器、缓存和缓冲区。 2.1. 服务支持和工具集 MySQL提供了相当广泛的服务支持和工具集 。这是MySQL受欢迎的主要原因之一。这一层为MySQL系统的管理和维护提供了服务和实用程序支持备份和恢复、安全、复制、集群、分区、工作台等辅助和高可用扩展支持功能。 2.2. SQL Interface 结构化查询语言SQL是一种查询语言用于查询MySQL服务器。它是MySQL客户端用户和服务器之间互动的工具。一些SQL组件包括数据操作语言DML、数据定义语言DDL、存储过程、视图、触发器。 2.3. 解析器 解析器Parser是MySQL服务层的一个重要组件负责将用户提交的SQL语句进行解析和语法分析以便后续的优化和执行。 解析器的主要功能 词法分析解析器首先会对SQL语句进行词法分析将输入的字符串按照空格、括号、逗号等分隔符进行切割形成一个个标记Token。 语法分析解析器根据MySQL定义的语法规则对词法分析得到的标记进行语法分析建立一棵语法树Parse Tree或语法分析树Abstract Syntax TreeAST。语法分析的过程中解析器会检查SQL语句的结构是否符合语法规则如果发现错误会抛出相应的错误信息。 语义分析解析器会对语法分析得到的语法树进行语义分析以确定SQL语句的意义和执行计划。例如解析器会检查表名、列名是否存在检查数据类型是否匹配以及解析查询语句的选项如DISTINCT、GROUP BY、HAVING等。 优化解析器将解析得到的语法树交给优化器Optimizer进行进一步的优化。优化器会考虑不同的执行计划选择最优的执行计划并生成相应的执行计划树Execution Plan Tree。 解析器的工作是将用户输入的SQL语句转化为可执行的内部表示形式为后续的执行器Executor执行提供必要的信息和指令。通过解析器MySQL能够理解和处理用户提交的SQL语句并将其转化为对底层存储引擎的实际操作。 举个解析器 例子理解一下 假设有以下SQL语句SELECT * FROM customers WHERE age 30; 词法分析将输入的SQL语句按照空格和关键字进行切割得到以下标记序列SELECT, *, FROM, customers, WHERE, age, , 30, ; 语法分析根据MySQL的语法规则将标记序列构建成语法树。语法树的结构 语义分析解析器进行语义分析检查语法树中的表名、列名是否存在数据类型是否匹配等。例如解析器会检查是否存在名为customers的表以及age列是否存在。 优化解析器将语法树交给优化器进行优化选择最优的执行计划。在这个例子中优化器可能会考虑是否使用索引来加速查询并生成相应的执行计划树。 解析器完成以上过程后将生成的内部表示形式传递给执行器执行器根据执行计划执行具体的操作返回查询结果给用户。 2.4. 优化器 优化器的主要任务是根据查询语句的语义和数据库的统计信息选择最优的执行计划来执行查询操作。优化器的目标是通过选择最优的执行计划从而提高查询的执行效率和性能。优化器的工作是在查询执行之前进行的它的输出是一个优化的执行计划用于指导数据库引擎的具体执行操作。 优化器的工作流程 查询重写优化器会对查询语句进行重写将其转化为逻辑查询树或者其他内部表示形式。在这个过程中优化器会进行语法分析、语义分析和查询优化规则的应用以生成一个优化的查询计划。 代价估算优化器会对每个可能的查询计划进行代价估算评估每个计划执行所需的时间、CPU和内存开销等。这个过程主要是根据数据库的统计信息和查询操作的特性来进行估算以便选择代价最低的执行计划。 执行计划生成优化器会根据代价估算的结果选择一个最优的执行计划。执行计划是一个具体的操作序列描述了查询操作在数据库引擎中的执行顺序和方式。优化器会考虑索引、连接操作、排序和聚合等操作的执行顺序和方法以最小化查询的执行代价。 执行计划优化生成执行计划后优化器还会对执行计划进行进一步的优化。这包括对操作的顺序进行优化、选择最适合的算法和数据结构、选择合适的并行度等。 举个优化器 例子理解一下 假设有一个电商平台需要进行用户的购物车查询和商品信息查询。有以下两个表 表A用户购物车表id, user_id, product_id, quantity 表B商品信息表product_id, product_name, price 现在有一个查询语句 SELECT A.user_id, B.product_name, B.price, A.quantity FROM A JOIN B ON A.product_id B.product_id WHERE A.user_id 12345 ORDER BY B.price DESC在这个例子中MySQL优化器可以进行以下优化 查询重写优化器可以将查询语句重写为内部表示形式例如将关键字“JOIN”和“ON”转化为适合优化的形式。 优化规则应用优化器可以根据查询语句的结构和语义应用一系列的查询优化规则。例如优化器可以将WHERE子句中的“A.user_id 12345”转化为一个过滤条件以提前过滤掉不满足条件的行。 统计信息收集优化器可以根据表A和表B的统计信息如索引的选择性、行数等来估计执行各个操作的成本。例如优化器可以根据索引的选择性和行数估计连接操作的成本以决定使用哪个表作为驱动表和被驱动表。 执行计划生成根据代价估算的结果优化器可以生成一个执行计划。在这个例子中优化器可能选择使用索引来进行表的连接操作以减少磁盘IO的开销并且根据WHERE子句的过滤条件选择合适的索引进行过滤操作。 执行计划优化生成执行计划后优化器还可以对执行计划进行进一步的优化。例如优化器可以对操作的顺序进行优化选择最适合的算法和数据结构以及选择合适的并行度。 通过以上优化步骤MySQL优化器可以选择最优的执行计划以提高查询的性能和效率。在这个例子中优化器可能选择使用用户ID为索引进行过滤操作并通过商品ID进行表的连接操作以获取指定用户的购物车商品信息并按照价格降序排列。这样可以减少磁盘IO的开销并快速获取所需的结果集。 2.5. 缓存 MySQL缓存指的是MySQL服务器的内存缓存也称为查询缓存(Query Cache)。MySQL缓存是指MySQL服务器将执行过的查询结果存储在内存中并在下一次有相同的查询请求时直接从内存中返回结果而不需要再次执行查询语句。这样可以大大提高查询的性能和效率。 MySQL缓存可以分为两种 查询缓存(Query Cache) 当一个查询被执行时MySQL服务器会将查询结果存储在内存中。如果下次有相同的查询请求MySQL会直接从缓存中返回结果而不去执行查询语句。查询缓存对于相同查询请求的重复查询非常有效但对于更新频繁的表和数据变化较大的表会导致缓存命中率低影响性能。 MySQL 8.0版本已经移除了查询缓存功能主要原因是因为查询缓存对于高并发的查询和更新操作会导致性能瓶颈而且查询缓存对于更新频繁的表和数据变化较大的表会导致缓存命中率低影响性能。 3. 存储引擎层 可插拔存储引擎功能使MySQL成为开发者首选。这是MySQL能够在大玩家中取得优势的特性。MySQL允许我们根据不同的情况和要求选择各种存储引擎。我们将在即将到来的文章中讨论每个存储引擎的特性这里只列出了支持的存储引擎的列表。 MyISAM、InnoDB、Federated、Mrg_MyISAM、Blackhole、CSV、Memory、Archive、Performance_schema。 3.1. 可插拔的特性 这意味着用户可以根据自己的需求选择合适的存储引擎甚至可以在不停止MySQL服务器的情况下切换存储引擎。 之所以可以插拔的方式是因为MySQL提供了一个叫做存储引擎API的接口允许第三方开发者开发自己的存储引擎并将其集成到MySQL中。通过这个接口用户可以定制存储引擎以满足各种不同的数据存储需求。 用户可以通过以下步骤在MySQL中切换存储引擎 查看当前使用的存储引擎可以使用以下命令查看MySQL当前的默认存储引擎和已安装的存储引擎 SHOW ENGINES;选择并安装新的存储引擎根据需求选择合适的存储引擎然后按照引擎提供的安装说明进行安装。 修改MySQL配置文件将MySQL配置文件通常是my.cnf中的default_storage_engine参数设置为新的存储引擎。 重启MySQL服务器重启MySQL服务器使新的存储引擎生效。 创建和使用新的存储引擎表使用CREATE TABLE语句创建新的存储引擎表并在查询时指定使用新的存储引擎。 3.2. 常见的MySQL存储引擎包括 InnoDB引擎InnoDB是MySQL默认的存储引擎它支持事务、行级锁和外键约束等特性。InnoDB引擎适用于大多数应用场景尤其是需要事务支持和高并发读写的场景。 MyISAM引擎MyISAM是MySQL的另一种常用存储引擎它不支持事务和行级锁但具有快速的读取性能和较小的存储空间占用。MyISAM引擎适用于读密集的应用场景如数据仓库和日志分析。 Memory引擎Memory引擎将表数据存储在内存中具有快速的读写性能和低延迟。但是由于数据存储在内存中重启MySQL服务器或服务器崩溃时会导致数据丢失。Memory引擎适用于需要快速读写的临时表和缓存表。 NDB Cluster引擎NDB Cluster引擎是MySQL的分布式存储引擎它可以将数据分布在多个节点上并提供高可用性和容错性。NDB Cluster引擎适用于需要高可用性和大规模数据存储的场景如电信、金融和互联网应用。 除了以上常见的存储引擎还有其他一些存储引擎如Archive、CSV、Blackhole等它们具有各自的特点和适用场景 参考文档 https://www.geeksforgeeks.org/architecture-of-mysql/
http://www.hkea.cn/news/14299355/

相关文章:

  • 山东省济宁市最新消息北京seo百科
  • 河南网站推广优化公司做任务送科比网站
  • phpcmsv9网站地图推广公司的网站
  • 旅行社网站建设规划书论文观察者网wordpress
  • 一键制作网站php招生网站开发
  • 网站上传服务器教程网店代运营就是个坑
  • 南京电信网站空间扩容小程序开发需要多少钱知乎
  • 东莞南城网站建设价格洛阳网站建设启辰网络
  • 自己做黑彩网站外贸网站销售方式
  • 7天精通网站建设实录网站群建设方案.doc
  • 个人博客网站制作搭建宁波seo网络推广公司
  • 厦门外贸网站建设公众号软文范例100
  • 网站开发类合同百度百科怎么创建自己
  • 湖北省建设安全管理协会网站泸州住院证明图片在线制作
  • 网站开发问题及解决网页制作教程视频
  • 男女做爰全过程网站南阳建站公司
  • 唐山中小企业网站制作没广告的视频播放器app
  • 高淳城乡建设局网站免备案wordpress主机空间
  • 青岛黄岛网站建设公司电话搜房网
  • 什么网站好建设h5互动的网站
  • 静态网站公用头部如何调用标题婚庆公司起名字大全免费
  • 移动网站开发教材开发工具在哪里
  • 搭建个网站需要多少钱整形网站优化
  • 钢管网站建设湖南定制响应式网站有哪些
  • 网站设计模板怎么使用湖南电商平台网站建设
  • 鞍山网站设计制作网站网络营销渠道的功能有
  • 河南网站建设工作室和县建设局网站
  • 上海专业网站建设网站今天出入苏州最新通知
  • 网站快速排名技巧房地产开发商是干什么的
  • 怎么做网站内容公司网站运营维护单位