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

潮州哪里有做网站移动宽带 国外网站

潮州哪里有做网站,移动宽带 国外网站,wordpress插件 数据,苏州seo关键词优化推广需要从数据库检索某些符合要求的数据#xff0c;我们很容易写出 Select A B C FROM T WHERE ID XX 这样的SQL#xff0c;那么当我们向数据库发送这样一个请求时#xff0c;数据库到底做了什么#xff1f;我们今天以MYSQL为例#xff0c;揭示一下MySQL数据库的查询过程我们很容易写出 Select A B C FROM T WHERE ID XX  这样的SQL那么当我们向数据库发送这样一个请求时数据库到底做了什么我们今天以MYSQL为例揭示一下MySQL数据库的查询过程并让大家对数据库里的一些零件有所了解。MYSQL架构mysql架构MySQL 主要可以分为 Server 层和存储引擎层。Server层 包括连接器、查询缓存、分析器、优化器、执行器等所有跨存储引擎的功能都在这一层实现比如存储过程、触发器、视图、函数等还有个通用的日志模块binlog日志模块存储引擎层 负责数据的存储和提取。其架构模式是插件式的支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB支持事务它从 MySQL5.5.5 版本开始成为默认存储引擎。连接器连接器主要负责用户登录数据库进行用户的身份认证包括校验账户密码权限等操作。如果用户密码不对你就会收到一个Access denied for user的错误然后客户端程序结束执行。如果用户账户密码已通过连接器会到权限表中查询该用户的所有权限之后在这个连接里的权限逻辑判断都是会依赖此时读取到的权限数据也就是说后续只要这个连接不断开即时管理员修改了该用户的权限该用户也是不受影响的。查询缓存 Query cache客户端与服务端建立连接后MySQL 在执行查询语句时会先查询缓存校验这条SQL是不是在之前执行过。之前执行过的语句及其结果会以 key-value 对的形式被直接缓存在内存中。key 是查询的语句value 是查询的结果。如果你的查询能够直接在这个缓存中找到 key那么这个value 就会被直接返回给客户端。如果没有命中则需要执行后续的操作完成后也会把结果缓存起来方便下一次调用。看到这里大家会不会眼前一亮会不会有这个功能很好要好好利用的冲动。其实这里并不建议使用查询缓存查询缓存的失效非常频繁只要有对一个表的更新这个表上所有的查询缓存都会被清空。因此很可能你费劲地把结果存起来还没使用就被一个更新全清空了。对于更新压力大的数据库来说查询缓存的命中率会非常低。除非是那种很长时间不会更新的表比如系统配置表但是这种系统配置我们放在配置平台不好吗在MYSQL8.0中已经删除了查询缓存这个功能官方也是认为该功能在实际的应用场景比较少所以干脆直接删掉了。分析器Mysql没有命中查询缓存那么就会进入分析器分析器主要是用来分析SQL语句是来干嘛的。分析器主要分为以下两步词法分析 一条SQL语句有多个字符串组成首先要提取关键字比如select提出查询的表提出字段名提出查询条件等等。语法分析根据词法分析的结果语法分析主要就是判断你输入的SQL语句是否正确是否符合MYSQL语法如果你的语句不对就会收到“You have an error in your SQL syntax”的错误提醒。词法分析程序将整个查询语句分解成各类标志语法分析根据定义的系统语言将“各类标志”转为对MySQL有意义的组合。最后系统生成一个语法树(AST)语法树便是优化器依赖的数据结构。优化器经过了分析器MySQL 就知道你要做什么了。在开始执行之前还要先经过优化器的处理。为什么需要优化器优化器中包含了许多复杂的优化技术这些优化技术往往比最好的程序员掌握的还要多。系统的自动优化相当于使得所有人都拥有这些优化技术。优化器可以从数据字典中获取许多统计信息例如表中的行数、表中的每个列的分布情况等。优化器优化器可以考虑百种不同的执行计划而程序员一般只能考虑有限的几种可能可以根据这些信息选择有效的执行计划而用户程序则难以获得这些信息总之优化器是对语法分析树的形态进行修改把语法分析树变为查询树确定执行方案。执行器MySQL 通过分析器知道了你要做什么通过优化器知道了该怎么做于是就进入了执行器阶段开始执行语句。开始执行的时候要先校验改用户是否有执行查询的权限如果没有就会返回没有权限的错误。如果有权限就会去调用引擎的接口返回接口执行的结果。语句分析我们以下面一条真实SQL查询语句来进行分析下MYSQL查询的执行过程select id,name,sex,phoone from user t where t.age26 and t.accountjavadaily首先客户端需要连接上数据库如果账号密码错误直接返回错误信息如果正确则进入下一步。在MYSQL8.0之前会先去查询缓存中以这条SQL语句作为key在内存中查询是否有结果如果有则先判断是否有权限有权限则返回客户端否则报错如果没有从查询缓存命中则进入下一步通过分析器进行词法分析提取sql语句的关键元素比如提取上面这个语句是查询select提取需要查询的表名为user需要查询的列为id,name,sex,phoone查询条件是age26 和accountjavadailly。然后判断这个sql语句是否有语法错误比如关键词是否正确等等如果检查没问题就执行下一步。上面的SQL有两种执行方案优化器根据自己的优化算法选择执行效率最高的a方案统计信息不准可能导致优化器选择错误的执行方案确定了优化方案后就开始执行。a. 先查询 accountjavadaily的用户然后判断 age是否等于26 b. 先找出 age26的用户再查询 accountjavadaily的用户进行权限校验如果有查询权限则调用数据库引擎接口返回执行结果否则报错。往期推荐线程安全问题的 3 种解决方案分布式锁的 3 种实现方案如何判断线程池已经执行完所有任务了
http://www.pierceye.com/news/881780/

相关文章:

  • 军队 网站备案安卓手机软件开发平台
  • 湖北交投建设集团网站泰安网络公司行情
  • 做排版的网站绍兴网站建设专业的公司
  • 深圳专业网站建设公司济南建设网站
  • 广西建设职业技术学院网站做的比较好的二手交易网站有哪些
  • 北辰网站建设公司wordpress79元主题
  • 网站怎么绑定织梦广东网站建设968
  • ps扩展插件网站业务平台
  • 富阳设计网站广州网站设计公司
  • 演讲网站开发背景wordpress 1h 1g
  • 广州十度网络网站开发最好网站被挂马怎么办
  • 网站建设及维护费算业务宣传费网站如何做触屏滑动效果
  • 如何查询一个网站所属的主机免费可以绑定域名网站空间
  • asp.net网站开发教程品牌型网站建设
  • 海南网站网络推广建设网站需要注意的事项
  • 营销外包网站网站类别标签文本
  • 企业概况简介解答网站内容优化策略
  • ImQQ网站是怎么做的做网站把自己做死
  • 房产网站制作流程php网站开发教程网
  • 小程序商城名字谷歌优化技巧
  • 备案的时候需要网站吗seo搜索引擎优化公司
  • 网站 空间转移wordpress后台点击菜单没反应应
  • 企业网站可以自己做国外域名交易网站
  • 龙岗网站建设费用明细国外的服务器做的网站在国外能打开在国内打不开是什么原因
  • 个人网站的设计与实现摘要东莞学校网站建设
  • 深圳建设局招标网站网站空间pdf下载不了
  • 中国网站建设服务中心百度搜索风云榜电脑版
  • 开发网站性能监控网站开发常见技术问题
  • wordpress 手风琴插件长沙网站优化联系方式
  • 上海松江水处理网站建设做网站项目