当前位置:首页 > CN2资讯 > 正文内容

windows服务器下mysql 数据库数据存在哪里 mysql服务器工作在

3小时前CN2资讯


MySQL分为Server层和存储引擎层两个部分,不同的存储引擎共用一个Server层。

Server层:大多数MySQL的核心服务功能都在这一层,包括连接处理、授权认证、查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。

存储引擎层:存储引擎负责MySQL中数据的存储和提取。服务器通过API与存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明。

MySQL客户端与服务端的通信方式是“半双工”,客户端一旦开始发送消息另一端要接收完整这个消息才能响应,客户端一旦开始接收数据就没法停下来发送指令,一请求一响应。

连接器

第一步,先连接到数据库上,当客户端(应用)连接到MySQL服务器时,服务器需要对其进行认证,认证基于用户名、原始主机信息和密码,一旦客户端连接成功,服务器会继续验证客户端是否具有执行某个特定查询的权限(例如,是否允许客户端对某一数据库的某一表执行SELECT语句)

连接命令:

mysql -h$ip -p$port -u$user -p

输完命令之后,需要在交互对话里面输入密码,密码不建议在-p后面直接输入,这样会导致密码泄露。

查询缓存

第二步,查询缓存,每次MySQL执行过的语句及其结果会以key-value形式缓存在内存中,key是查询语句,value是查询结果。如果查询能够在缓存中找到key,那么这个value就会被直接返回客户端。

但是大多数情况下我会建议不要使用缓存,因为查询缓存的失效非常频繁,只要对一个表的更新,即便是更新一些与缓存无关的字段,这个表所有的缓存都会被清空,因此很可能会费劲地把结果存起来,还没使用就被一个更新全部清空,对于更新压力的数据库来说,查询缓存的命中率会非常低,除非业务就一张静态表,很长时间才会更新一次。(例如系统配置表)

MySQL提供了按需使用的方式,可以将参数query_cache_type设置为DEMAND,这对于默认的SQL不使用查询缓存,而对于确定要使用查询缓存的语句,可以使用SQL_CACHE显示指定。(SELECT SQL_CACHE * FROM TAB)

通过查询语句做哈希算法得到一个哈希值,因此这里要想命中缓存,查询SQL和缓存SQL必须完全一致,每次检查缓存是否命中时都会对缓存加锁,对于一个读写频繁的系统使用查询缓存很有可能降低查询

注意:MySQL8.0版本直接将缓存的整个功能模块删掉了

分析器

第三步,分析器,如果没有命中缓存,就会执行SQL语句,首先让MySQL知道我们需要做什么,因此需要对SQL语句解析,MySQL从输入的“select”关键字识别出来,这是一条查询语句,把字符串“TAB”识别成表名TAB,检查查询中涉及的表和数据列是否存在或别名是否有歧义

解析器的工作:语法分析(生成句子),语义分析(确保这些句子讲得通),以及代码生成(为编译准备)

注意:分析器和解析器是一个东西,有些书叫分析器,有些书叫解析器,就是不同的叫法而已

优化器

第四步,优化器,经过分析器MySQL知道我们需要什么了,在开始执行前,还要经过优化器进行处理,优化器是在表里面有多个索引时,决定使用哪个索引,或者在一个语句有多表关联(join)时,决定各个表的连接顺序。

优化器会生成执行计划

执行器

第五步,执行器,MySQL通过分析器知道要做什么,通过优化器知道怎么做,开始执行前,要先判断一下是否有表TABLE查询权限,如果有打开表,根据表的引擎定义,去使用这个引擎提供的接口。

根据执行计划,调用存储引擎API来查询数据


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/31505.html

    分享给朋友:

    “windows服务器下mysql 数据库数据存在哪里 mysql服务器工作在” 的相关文章

    服务器租赁指南:如何选择适合的云服务和价格

    对于很多企业和个人用户来说,服务器租赁是一个非常实用的选择。简单来说,服务器租赁就是用户向服务器提供商支付费用,然后获得在一定时间内使用服务器的权利。这样一来,用户就无需花费时间和金钱去购买和维护物理服务器,可以迅速开始在线业务。 当我第一次接触服务器租赁时,发现这一服务的便利性令我十分惊讶。传统的...

    揭秘 cheapnat 优惠码的省钱技巧与使用攻略

    什么是 cheapnat 优惠码 我最近发现,cheapnat 优惠码成为了网络用户省钱的绝佳利器。它们通常是特定服务或产品的折扣代码,可以帮助用户在购买 VPS、域名注册或代理服务时享受不同程度的价格优惠。无论你是个人用户还是小型企业,合理利用这些优惠码都能帮你减少开支,同时享受到高质量的服务。...

    使用Namesilo优惠码注册域名,轻松省钱的秘诀

    Namesilo概述:域名注册的专业选择 要谈到域名注册,我想到的首先就是Namesilo。作为一家成立于2010年的域名注册商,Namesilo吸引了不少用户。我对它的第一印象是专业,尤其是在价格和服务上,使其成为许多人的首选。它的总部位于美国亚利桑那州,作为ICANN认证的注册商,Namesil...

    在Ubuntu上使用宝塔面板进行服务器管理的全方位指南

    宝塔面板简介 作为一款在服务器管理领域取得广泛认可的工具,宝塔面板在Linux系统中尤为突出,特别是针对Ubuntu用户而言。通过提供直观的操作界面,宝塔有效地简化了复杂的Linux服务器管理过程。对于我这样的用户来说,宝塔无疑是一个不可多得的助手,轻松应对日常维护和配置工作。 宝塔面板不仅仅是一款...

    全面了解IP检查的重要性与实用工具

    IP 检查概述 在开始之前,先简单想象一下我在使用网络的日常生活。每当我访问一个网站或者下载文件时,我的设备背后其实都有一个IP地址在默默运作。这个看似简单的数字组合,不仅是我们在互联网世界里的“身份证”,同时也是进行各种网络交互的基础。 什么是 IP 检查 IP检查,简单来说,就是对IP地址的分析...

    腾讯云国际版:全球云服务的强者之选,满足您的业务需求

    腾讯云国际版概述 腾讯云国际版的定义与背景 腾讯云国际版是腾讯公司专为全球客户推出的一款云服务产品,旨在满足不同国家和地区用户的需求。它在功能上与国内版本相似,但根据国际市场的需求进行了优化,以确保服务的稳定性和流畅性。作为一名用户,我发现腾讯云国际版特别注重数据隐私和合规性,这对于希望拓展海外市场...