![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
七皇
个人博客:www.qihuang7.top
展开
-
MySQL查询性能优化
查询性能优化 为什么查询速度会慢? 如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数。 通常来说,查询的生命周期大致可以按照顺序来看:从客户端,到服务器,然后再服务器上进行解析,生成执行计划,执行,返回结果给客户端。其中“执行”是整个生命周期中最重要的阶段,这其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序、分组等。 慢查询基础:优化数据访问 查询性能低下最基本的原原创 2020-07-23 19:38:56 · 82 阅读 · 0 评论 -
MySQL之高性能的索引策略(索引优化)
高性能的索引策略 高效地选择和使用索引有很多种方式,其中有些是针对特殊案例的优化方法,有些则是针对特定行为的优化。 独立的列 如果查询中的列不是独立的,则MySQL就不会使用索引。“独立的列”是指索引列不能是表达式的一部分,也不能是表达式的一部分,也不能是函数的参数。 例如,下面这个查询无法使用actor_id列的索引: SELECT actor_id FROM sakila.actor WHERE actor_id + 1 = 5; 或 SELECT ... WHERE TO_DAYS(CURRENT_D原创 2020-07-23 19:37:53 · 143 阅读 · 0 评论 -
MySQL之存储引擎(InnoDB和MyISAM)
存储引擎 InnoDB存储引擎 InnoDB是MySQL的 默认事务型引擎,也是最重要、使用最广泛的存储引擎。它被设计用来 处理大量的短期事务,短期事务大部分情况是正常提交的,很少会被回滚。 InnoDB的性能和自动奔溃恢复特性,使得它在非事务存储的需求中也很流行。 InnoDB的数据存储在 表空间 中,表空间是由InnoDB管理的一个黑盒子,由一系列的数据文件组成。 InnoDB采用 MVCC(多版本并发控制),并且实现了四个标准的 隔离级别。其默认级别是 可重复读(REPEATABLE_READ),并且原创 2020-07-23 19:36:47 · 95 阅读 · 0 评论 -
MySQL的索引及索引优化
创建高性能的索引 索引是**存储引擎用于快速找到记录的一种数据结构。**索引优化应该是对查询性能优化最有效的手段。索引能够轻易将查询性能提高几个数量级,“最优”的索引有时比一个“好的”索引性能要好两个数量级。创建一个真正“最优”的索引经常需要重写查询。 索引基础 如果想在一本书中找到某个特定主题,一般会先看书的“索引”,找到对应的页码。 在MySQL中,存储引擎用类似的方法使用索引,其先在索引中找到对应值,然后根据匹配的索引记录找到对应的数据行。假如要运行下面的查询: SELECT first_name F原创 2020-07-23 19:33:19 · 91 阅读 · 0 评论 -
MySQL逻辑架构、锁、事务、MVCC
MySQL逻辑架构 数据库的工作流程 从MySQL的三个层面介绍数据库的工作流程: 最上层:客户端连接 连接处理:客户端同数据库服务层建立TCP连接,连接管理模块会建立连接,并请求一个线程。如果线程池中有空闲的连接线程,则分配给这个连接,如果没有,在没有超过最大连接数的情况下,创建新的连接线程负责这个客户端 授权认证:在真正的操作之前,还需要调用用户模块进行授权检查,来验证用户是否有权限。通过后,方才提供服务,连接线程开始接收并处理来自客户端的SQL语句 第二层:核心服务 连接线程接收到SQL原创 2020-07-23 19:30:38 · 108 阅读 · 0 评论