码迷,mamicode.com
首页 > 数据库 > 详细

MySQL架构原理及优化

时间:2020-04-19 17:42:53      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:href   执行   冗余   删除   12c   mysql查询   direct   阶段   执行流程   

索引原理

架构

技术图片

MySQL查询执行过程

技术图片

  1. 客户端向MySQL服务器发送一条查询请求

  2. 服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段

  3. 服务器进行SQL解析、预处理、再由优化器生成对应的执行计划

  4. MySQL根据执行计划,调用存储引擎的API来执行查询

  5. 将结果返回给客户端,同时缓存查询结果

优化

  1. MySQL 不会在非独立列使用索引 ,即 where 后查询条件不能是表达式的一部分不能是函数的参数
  2. 列很成,使用前缀索引 ,节省索引空间,提高索引效率
  3. 多列索引和索引顺序
  • 当出现多个索引做相交操作时(多个AND条件),通常来说一个包含所有相关列的索引要优于多个独立索引。
  • 当出现多个索引做联合操作时(多个OR条件),对结果集的合并、排序等操作需要耗费大量的CPU和内存资源,特别是当其中的某些索引的选择性不高,需要返回合并大量数据时,查询成本更高。所以这种情况下还不如走全表扫描
  1. 避免多个范围条件,多个范围条件无法同时使用索引 ,即索引失效
  2. 避免索引的冗余与重复
  3. 删除长期未使用的索引

MySQL架构原理及优化

标签:href   执行   冗余   删除   12c   mysql查询   direct   阶段   执行流程   

原文地址:https://www.cnblogs.com/luckyCoder/p/12732333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!