场景:比如,有一张表,专门记录业务里的唯一数据记录,这张表里如果存在此唯一数据的记录就更新此行数据的某个字段,如果此唯一数据不存在,那么就添加一条最新数据。 一贯操作:如果不知道mysql有 ON DUPLICATE KEY UPDATE 这种操作的话,一般的做法都是先select此表,如果存在就u
原创 2021-05-27 13:50:58
1551阅读
MYSQL优化优化位于MySQL的Server层,位于分析与执行之间,其主要作用是执行计划的生成以及索引选择;在表里面有多个索引的时候,优化决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序,尽量扫描更少的数据;索引选错的例子先建一个简单的表,表里有 a、b 两个字段,并分别建上索引:CREATE TABLE `t` ( `id` int(11) NO
转载 2024-01-12 06:45:39
118阅读
文章目录优化概述逻辑转换基于成本的优化控制优化程度设置成本常量数据字典与统计信息控制优化行为优化和索引提示总结 大家好,我是只谈技术不剪发的 Tony 老师。我们在 MySQL 体系结构中介绍了 MySQL 的服务逻辑结构,其中查询优化(optimizer)负责生成 SQL 语句的执行计划,是决定查询性能的一个关键组件。本文将会深入分析 MySQL 优化工作的原理以及如何控制优化来实
转载 2023-10-24 18:18:00
0阅读
目录MySQL优化(CBO)mysql索引一般建立在高选择性字段上,也有例外总结参考资料:姜承尧的MySQL实战宝典MySQL优化(CBO)MySQL优化决定了具体某一索引的选择,也就是常说的执行计划。优化的选择是基于成本,它会分析所有可能的执行计划,哪个索引的成本越低,优先使用哪个索引。这种优化称之为:CBO(Cost-based Optimizer,基于成本的优化)。 MySQL
转载 2023-09-07 23:25:15
57阅读
1 Explain优化 【推荐】SQL 性能优化的目标:至少要达到 range 级别,要求是 ref 级别,如果可以是 consts 最好。 说明: consts 单
原创 2024-07-17 10:17:13
0阅读
| 作者 梁东阳,数据库研发中心数据库内核工程师,负责腾讯云MySQL的内核开发。在日常运维中,相信不少人都收藏了很多关于查询优化的方法论和小技巧,但是仔细想想,你真的了解这些优化背后的原理吗?查询优化是专门负责优化查询语句的优化模块,通过计算分析收集的各种系统统计信息,为查询给出最优的执行计划——最优的数据检索方式。MySQL优化主要是将SQL经过语法解析/词法解析后得到的语法树,通过M
一、前言      这篇文章的诞生很偶然,优化大家基本都听过,感觉就是只要自己不能理解的东西,都归于mysql优化就完事了,哈哈。但是优化到底是什么呢,执行过程是什么样子的呢?博主是在看一篇博文的时候,看到人家开启优化追踪sql语句,emmm,很高大上,行吧,那咱也研究研究。    &nbs
PolarDB-X接收到一条SQL后的执行过程大致如下:语法解析(Parser)将SQL文本解析成抽象语法树(AST)。语法树被转化成基于关系代数的逻辑计划。优化(Optimizer)对逻辑计划进行优化得到物理计划。执行(Executor)执行该计划,得到查询结果并返回给用户。本章将会介绍查询优化的基本原理,包含如下几个方面:关系代数算子。查询改写(RBO阶段)。查询计划枚举(CBO阶段)
前言之前的几篇博客已经把InnoDB和Index原理详细的分析了一下,本篇博客将会和大家一起分享如何使用查询优化,探索Mysql底层对查询的优化以及Mysql查询成本的估算。开启查询优化俗话说工欲善其事必先利其Mysql查询语句分析也是一样,有一个良好的分析工具自然可以做到事半功倍,这里就要介绍到Mysql自带的查询优化了,基本功能如下。set optimizer_trace="enab
转载 2023-08-16 17:09:49
115阅读
对于一个SQL语句,查询优化先看是不是能转换成JOIN,再将JOIN进行优化优化分为:1. 条件优化2.计算全表扫描成本3. 找出所有能用到的索引4. 针对每个索引计算不同的访问方式的成本5. 选出成本最小的索引以及访问方式开启查询优化日志-- 开启set optimizer_trace="enabled=on";-- 执行sql-- 查看日志信息select * from informati
常用慢查询分析工具引言 在日常的业务开发中 MySQL 出现慢查询是很常见的 大部分情况下会分为两种情况 1、业务增长太快 2、要么就是SQL 写的太xx了 所以 对慢查询 SQL 进行分析和优化很重要 其中 mysqldumpslow 是 MySQL 服务自带的一款很好的分析调优工具3.1 调优工具mysqldumpslow3.1.1 调优工具常用设置1、什么是MySQL 慢查询日志MySQL
转载 2023-08-22 09:14:49
54阅读
影响数据库性能的常见因素如下: (1)磁盘IO; (2)网卡流量; (3)服务硬件; (4)SQL查询速度。下面介绍几个mysql 优化的工具,可以使用它们对MySQL进行检查,生成awr报告,从整体上把握数据库的性能情况。一、MySQLTuner.plMySQLTuner是MySQL一个常用的数据库性能诊断工具,主要检查参数设置的合理性,包括日志文件、存储引擎、安全建议及性能分析。针对潜在的问
转载 2023-07-06 15:25:19
79阅读
mysqlkey和index多少有点令人迷惑,这实际上考察对数据库体系结构的了解的。 1).key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)。包括primary key, unique key, foreign key 等。 pr
原创 2021-07-15 09:55:21
386阅读
## MySQL 优化 key_read_requests 在 MySQL 中,`key_read_requests` 是一个用于评估查询性能的重要指标。它表示在执行查询时,MySQL 数据库从索引中读取数据的请求数量。优化 `key_read_requests` 是提高数据库性能的关键一步。本文将介绍如何通过合理的索引设计、查询优化和缓存优化等方法,来减少 `key_read_requests
原创 2024-01-22 03:47:12
111阅读
# MySQL优化:提升查询性能的关键 MySQL是一个广泛使用的关系型数据库管理系统。为了提高查询性能,MySQL提供了一个强大的优化,它负责选择最优的执行计划。本文将介绍MySQL优化的基本概念、工作原理,并提供一些简单的代码示例,以及如何利用优化来提升数据库的性能。 ## 什么是MySQL优化MySQL优化是查询处理的核心组件,主要负责分析SQL语句的结构,并生成最有效
原创 8月前
29阅读
# MySQL优化 ## 简介 MySQL是目前最流行的关系型数据库之一,而MySQL优化MySQL的一个重要组件。优化的主要任务是根据查询语句和数据库的统计信息来决定如何执行查询以获得最佳性能。本文将介绍MySQL优化的工作原理,并通过代码示例来进一步说明。 ## 工作原理 当用户发出一个查询请求时,MySQL优化会根据查询语句的结构和统计信息来生成一个查询执行计划。查询执行
原创 2023-09-30 07:19:37
44阅读
文章目录扫描行数的确定基数的确定索引错误选择如何避免索引选择错误? 优化,顾名思义是对将要做的事情进行优化以达到提升的效果。MySQL里的优化是找到一个最优的执行方案,并用最小的代价去执行语句。在数据库里面,扫描行数是影响执行代价的因素之一。扫描的行数越少,意味着访问磁盘数据的次数越少,消耗的CPU资源越少。除了扫描行数,是否使用临时表、是否排序等也是优化需要进行判断的因素。扫描行数的确定
转载 2023-11-09 10:23:39
76阅读
  MySQL查询优化有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。  你的最终目标是提交SELECT语句查找数据行,而不是排除数据行。优化试图排除数据行的原因在于它排除数据行的速度越快,那么找到与条件匹配的数据行也就越快。   如何 更好的 利用索引:    1:尽量比较数据类型相同的数据列。当你在比较操作中使用索引数据列的时候,请
这篇描述MySQL查询优化的工作原理。MySQL查询优化主要为执行的查询决断最有效的路线(routine,走向)。一。源代码和概念这部分讨论优化关键概念,术语,及在MySQL源代码怎么对应的。1.定义狭义定义:优化,就是DBMS为查询时决断要往哪种执行路径的一系列路线。MySQL是经常调整查询的路线,所以你得把这篇描述的逻辑和在源代码里的做比较。为了使比较容易些,这里会包含相关文件和路径
一: MySQL知识点1. MySQL 基础架构MySQL 基础架构从上图可以看出, MySQL 主要由下面几部分构成:连接: 身份认证和权限相关(登录 MySQL 的时候)。查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。分析: 没有命中缓存的话,SQL 语句就会经过分析,分析说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQ
转载 2024-08-29 00:15:12
81阅读
  • 1
  • 2
  • 3
  • 4
  • 5