MySQL架构原理及优化
Posted luckycoder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL架构原理及优化相关的知识,希望对你有一定的参考价值。
索引原理
架构
mysql查询执行过程
-
客户端向MySQL服务器发送一条查询请求
-
服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段
-
服务器进行SQL解析、预处理、再由优化器生成对应的执行计划
-
MySQL根据执行计划,调用存储引擎的API来执行查询
-
将结果返回给客户端,同时缓存查询结果
优化
- MySQL 不会在
非独立列使用索引
,即 where 后查询条件不能是表达式的一部分
或不能是函数的参数
- 列很成,使用
前缀索引
,节省索引空间,提高索引效率 - 多列索引和索引顺序
- 当出现多个索引做相交操作时(多个AND条件),通常来说一个包含所有相关列的索引要优于多个独立索引。
- 当出现多个索引做联合操作时(多个OR条件),对结果集的合并、排序等操作需要耗费大量的CPU和内存资源,特别是当其中的某些索引的选择性不高,需要返回合并大量数据时,查询成本更高。所以这种情况下还不如走全表扫描
- 避免多个范围条件,多个范围条件
无法同时使用索引
,即索引失效 - 避免索引的
冗余与重复
- 删除长期未使用的索引
以上是关于MySQL架构原理及优化的主要内容,如果未能解决你的问题,请参考以下文章