注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

标签:MySQL SQL

MySQL SQL

MySQL查询优化:Index Merge

一、为什么会有Index Merge 我们的 where 中可能有多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能会使用到 Index Merge 技术。Index Merge 技术如果简单的说,其实就是对多个索引分别进行条件扫描,然后将它们各自的结果进行合并(Intersect/Union)。 MySQL 5.0之……继续阅读 »

彭东稳 3个月前 (07-13) 734浏览 0评论 2个赞

MySQL SQL

从顺序随机I/O原理来讨论MySQL MRR NLJ BNL BKA

一、机械磁盘原理 机械盘由动臂,盘片,读写磁头,主轴组成,磁头是固定不能动的,要读取相应的扇区只能通过盘片的旋转。每一个盘片为双面,每一个面上分布有同心圆的磁道,磁道又分为扇区一般为512 BYTES,现代的磁盘一般外边缘磁道的扇区多,内磁道的扇区少,那么一般读写外边缘磁道的速度更快,因为转速为定值。同时各个不同盘片上半径下同的磁道组成了一个柱面。 下图是一……继续阅读 »

彭东稳 3个月前 (07-10) 729浏览 0评论 0个赞

MySQL SQL

MySQL查询优化:子查询物化

一、背景 MySQL引入了Materialization(物化)这一关键特性用于子查询(比如在IN/NOT IN子查询以及 FROM 子查询)优化。 具体实现方式是:在SQL执行过程中,第一次需要子查询结果时执行子查询并将子查询的结果保存为临时表 ,后续对子查询结果集的访问将直接通过临时表获得。与此同时,优化器还具有延迟物化子查询的能力,先通过其它条件判断子……继续阅读 »

彭东稳 4个月前 (07-02) 542浏览 0评论 1个赞

MySQL SQL

MySQL查询解析顺序

一、逻辑查询处理 SQL语言不同于其他编程语言,最明显的不同体现在处理代码的顺序上。在大多数编程语言中,代码按编码顺序被处理。但在SQL语言中,第一个被处理的子句总是FROM子句。下面显示了逻辑查询处理的顺序以及步骤的序号。 (8) SELECT (9) DISTINCT <select_list> (1) FRO……继续阅读 »

彭东稳 6个月前 (04-04) 2348浏览 0评论 2个赞

MySQL

MySQL运算符介绍

运算符是告诉MySQL执行特殊算术或逻辑操作的符号,主要用于在SQL语句的WHERE子句来执行,比较和算术运算等操作。运算符用于指定一个SQL语句中的条件,并作为连词多个条件在一份声明中。MySQL的内部运算符很丰富,主要有四大类:算术运算符、比较运算符、逻辑运算符、位操作运算符。 一、算术运算符 运算符 作用 + 加法运算 - 减法运算 ……继续阅读 »

彭东稳 6个月前 (04-04) 1561浏览 0评论 0个赞

MySQL SQL

SQL编程:联接查询

一、联接查询 联结查询是一种常见的数据库操作,即在两张表(或更多表)中进行行匹配的操作。一般称之为水平操作,这是因为对几张表进行联接操作所产生的结果集可以包含这几张表中所有的列。对应于联接的水平操作,一般将集合操作视为垂直操作。 MySQL数据库支持如下的联接查询: CROSS JOIN(交叉联接) INNER JOIN(内联接) OUTER JOIN(外……继续阅读 »

彭东稳 7个月前 (04-02) 538浏览 0评论 0个赞

MySQL SQL

SQL编程:REPLACE INTO

REPLACE是SQL标准的MySQL扩展,它要么插入,要么删除。REPLACE工作原理与INSERT类似,不同之处在于假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。INSERT … ON DUPLICATE KEY UPDATE是直接更新旧行。要使用REPLA……继续阅读 »

彭东稳 9个月前 (01-09) 3868浏览 2评论 1个赞

MySQL SQL

SQL语句:INSERT … ON DUPLICATE KEY UPDATE

向数据库插入记录时,有时会有这种需求,当符合某种条件的数据存在时,去修改它,不存在时,则新增,也就是insert Or Update操作。这种控制可以放在业务层,也可以放在数据库层,大多数数据库都支持这种需求,如本文所讲的MySQL中的INSERT … ON DUPLICATE KEY UPDATE语句。 该语句是基于唯一索引或主键使用,比如一个……继续阅读 »

彭东稳 9个月前 (01-09) 3583浏览 1评论 1个赞

MySQL InnoDB

MySQL索引原理及SQL优化

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少……继续阅读 »

彭东稳 1年前 (2017-08-28) 5073浏览 0评论 8个赞

MySQL SQL

MySQL CASE和IF语句使用

SQL语句中的case语句与高级语言中的switch语句,是标准SQL的语法,适用于一个条件判断有多种值的情况下分别执行不同的操作。 首先,让我们看一下CASE的语法。在一般的SELECT中,其语法格式如下: CASE <单值表达式> WHEN <表达式值> THEN <SQL语句或……继续阅读 »

彭东稳 1年前 (2017-07-25) 4700浏览 0评论 1个赞