MySQL架构原理及优化

Posted luckycoder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL架构原理及优化相关的知识,希望对你有一定的参考价值。

索引原理

架构

技术图片

mysql查询执行过程

技术图片

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

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

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

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

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

优化

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

以上是关于MySQL架构原理及优化的主要内容,如果未能解决你的问题,请参考以下文章

4大JVM性能分析工具详解,及内存泄漏分析方案

MySQL Optimization 优化原理

MySql优化原理

MySQL深入理解MySQL索引优化器原理(MySQL专栏启动)

MySQL索引原理及SQL优化

我必须得告诉大家的MySQL优化原理