图文并茂详解 SQL JOIN
Join 是关系型数据库系统的重要操作之一,一般关系型数据库中包含的常用 Join:内联接、外联接和交叉联接等。如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时我们应该考虑使用 Join,本文将通过可视化图表介绍 SQL 中的各种常用 Join 特性、原理和使用场景
服务端指南 数据存储篇 | MySQL(03) 如何设计索引
改善性能最好的方式,就是通过数据库中合理地使用索引,换句话说,索引是提高 MySQL 数据库查询性能的主要手段。在下面的章节中,介绍了索引类型、强制索引、全文索引。 原文地址:服务端指南 数据存储篇 | MySQL(03) 如何设计索引博客地址:http://blog.720u…
Oracle执行计划详解
转帖请注明:
本文源自TTT BLOG,原文地址:http://blog.chinaunix.net/u3/…
谈谈SQL慢查询的解决思路
最近,在运维部及DBA同事的帮助和大家的共同努力下,对项目中的慢SQL进行了优化和修正,效果还是很明显的,在此给大家点一个大大的赞。为了让我们在SQL的处理上更为合理,形成可实践、可借鉴、可参考优化的方案,我在这里梳理一下慢SQL的解决思路,供大家参考。 慢SQL的系统表现 首先…
图解 SQL 里的各种 JOIN
从业以来主要在做客户端,用到的数据库都是表结构比较简单的 SQLite,以我那还给老师一大半的 SQL 水平倒也能对付。现在偶尔需要到后台的 SQL Server 里追查一些数据问题,就显得有点捉襟见肘了,特别是各种 JOIN,有时候傻傻分不清楚,于是索性弄明白并做个记录。
由索引未被使用,看 SQL 开发规范落地
这篇文章帮你理清那些因为 SQL 语句编写规范问题导致没有充分利用索引来大幅提升效率的使用场景。
MYSQL开发性能研究——批量插入的优化措施
在标准SQL里面,我们通常会写下如下的SQL insert语句。
很显然,在MYSQL中,这样的方式也是可行的。但是当我们需要批量插入数据的时候,这样的语句却会出现性能问题。例如说,如果有需要插入100000条数据,那么就需要有100000条insert语句,每一句都需…
我在项目中对 MySQL 做的优化
原标题:我在 MySQL 上做了哪些优化原文链接:http://zhoupq.com/我在-MySQL-… 本文记录了我这一年的时间里是如何对项目中用到的 MySQL 进行优化。带有一定的主观性和局限性,请各位支持的同时,不吝赐教。 安装 这是同事分享…
MySQL 实战 – 关于索引的主要事项
关于索引的主要事项
一个关于 nolock 的故事
加入沪江不久,我就被扔到一个将集团 SQL Sever 的数据库迁移到 MySQL 的项目里,同时伴随进行的还有 .net 系统迁移到 Java 系统。在这个过程中我发现了一个很有趣的现象:历史遗留的 .net 项目中,几乎所有的 SQL 中都会使用一个关键字:nolock。这…
SQL,从熟练到掌握
通过一系列练习彻底掌握 SQL。
MySQL系列– 4. 查询性能优化
- 查询性能优化 如果把查询看成是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务运行得更快(有时候需要修改一些查询,减少这些查询对系统中运行的其他查询的影响…
SQL 优化之六脉神剑
关于 SQL 的一些优化技巧,讲得很详细。
库存-Mysql中的事务、锁与存储引擎
设计一个库存系统。在库存系统中,最重要的就是要防止超卖。模拟的SQL语句如下:首先查询是否有剩余量,正常的操作为: select * from t_goods where id=1 and rest>0;然后发现有剩余量,开始执行更新操作: update t_goods set…
建立索引的原则 – 以 innodb 为例
建立一个好的索引能够极大地提高 sql 语句的查询效率,那么问题来了,到底什么是索引,怎样才能建立一个好的索引呢?本文以 mysql Innodb 存储引擎为例,结合实际的项目来看一下,如何建立一个好的而索引。
Mysql 索引知识点
有了这些基础知识点,对MySql索引的类型以及索引使用的一些技巧,就比较容易理解了。 创建了一个辅助索引,如果能直接从这个辅助索引文件中获取到数据,而无需去访问聚集索引(自增主键索引)文件的话,那么这中就用到索引覆盖了。 这种的效率是极其高的。 像上面这个语句,如果只是为列b建…
MySQL 索引性能分析概要
上一篇文章 MySQL 索引设计概要 介绍了影响索引设计的几大因素,包括过滤因子、索引片的宽窄与大小以及匹配列和过滤列。在文章的后半部分介绍了 数据库索引设计与优化 一书中,理想的三星索引的设计流程和套路,到目前为止虽然我们掌握了单表索引的设计方法,但是却没有分析预估索引耗时的…
记一次 SQL 优化
weixin:dodba
Mysql B+树学习
要描述清楚B+树,得先了解二叉查找数,平衡二叉树。 任意节点,他的右子树如果不为空,那么右子树上的所有节点的值大于根节点的值。 这个特性给查找带来了方便,如上图,要找key=3的键值,只要从6这个节点左子树进行递归查找即可,右子树的节点可以完全不理会。 这种二叉查找树对查询没任…
MySQL 索引设计背后的数据结构及算法详解
这篇文章就来深入分析 MySQL 索引设计背后的数据结构和算法,从而帮你释疑以下几个问题:为什么 InnoDB 表需要主键?为什么建议 InnoDB 表主键是单调递增?为什么不建议 InnoDB 表主键设置过长?
【译】SQL 指引:如何写出更好的查询
结构化查询语言(SQL)是数据科学行业的一种不可或缺的技能,一般来说,学习这项技能是相当简单的。然而大多数人都忘记 SQL 不仅仅是写查询语句,这只是第一步。确保查询高性能,或者符合上下文语意又完全是另外一回事了。 首先,你将以数据科学工作中学习 SQL 的重要性的简要概述为开…
MySQL 慢查询 & 分析 SQL 执行效率浅谈
如何在 MySQL 中查找效率慢的 SQL 语句呢?在这篇文章中或许可以找到答案。
MySQL系列– 3.创建高性能的索引
索引是存储引擎用于快速找到记录的一种数据结构。 对良好的性能非常关键。 对查询性能优化最有效的手段。轻易将查询性能提高几个数量级。 存储引擎使用索引,先在索引中找到对应的值,然后根据匹配的索引记录找到对应的数据行。 可以包含一个或多个列的值。如果包含多个列,那么列的顺序也很重要…
MySQL 索引设计概要
在关系型数据库中设计索引其实并不是复杂的事情,很多开发者都觉得设计索引能够提升数据库的性能,相关的知识一定非常复杂。然而这种想法是不正确的,索引其实并不是一个多么高深莫测的东西,只要我们掌握一定的方法,理解索引的实现就能在不需要 DBA 的情况下设计出高效的索引。
MySQL系列– 5. MySQL高级特性
- MySQL高级特性 对用户来说,分区表是一个独立的逻辑表,但是底层由多个物理字表组成。 实现分区的代码实际上是对一组底层表的句柄对象(Handler Object)的封装。 对分区表的请求,都会通过句柄对象转换成对存储对象的接口调用。 所以分区对于SQL层来说是一个完全封…
MySQL索引专题一 认识索引
一个关于MySQL索引的专题系列,算是自己一个学习的总结,如果同时能帮到你那再好不过了。下面进入正题,我们先来了解一下什么是索引以及索引的类型。
Sql性能优化梳理
前言 本文主要针对的是关系型数据数据库MySql。键值类数据库可以参考最简大数据Redis。先简单梳理下Mysql的基本概念,然后分创建时和查询时这两个阶段的优化展开。 1.0 基本概念简述 1.1 逻辑架构 第一层:客户端通过连接服务,将要执行的sql指令传输过来 第二层:服务…
MySQL系列– 1.MySQL架构
- 逻辑架构 服务器基于用户名、原始主机信息和密码对客户端进行认证,连接成功后会验证某个特定操作的权限。 用户可以通过特殊的关键字提示(hint)优化器,影响MySQL的决策过程。也可以请求优化器解释(explain)优化过程的各个因素,便于用户重构查询和schema,修改相…