自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

那海蓝蓝的博客

生活点滴,微风拂去

  • 博客(425)
  • 收藏
  • 关注

原创 MySQ常量传递辨析

一 MySQL对于表达式的化简技术,支持常量传递这一技术,如下例:CREATE TABLE `t1` (  `id1` int(11) NOT NULL DEFAULT '0',  `a1` int(11) DEFAULT NULL,  `b1` int(11) DEFAULT NULL,  PRIMARY KEY (`id1`)) ENGINE=InnoDB DEFAULT CHARSET=la

2017-03-13 19:02:43 291

原创 MySQL监控性能的一些方法总结

有朋友问:  在Oracle中可以根据逻辑读衡量SQL的性能,在mysql中有类似的指标吗?还是只能根据执行时间判断?---首先, Oracle中的逻辑读对应物理读的概念,是在利用数据缓存区的技术上,对数据访问次数的计数分类。---物理读,真正有IO;逻辑读,是从缓存区读到数据,可以考察缓存区的命中率,但只是某个具体对象在缓存区中的命中率。---所以,使用数据缓存区技术的,都可以有类似的方式。但是

2017-03-13 19:02:39 375

原创 MySQL条件优化一例

有朋友试验如下,并提出问题:把having条件并入where条件优点:便于统一、集中化解条件子句,节约多次化解时间。注意:不是任何情况下HAVING条件都可以并入WHERE条件,只有在SQL语句中不存在GROUPBY条件或聚集函数的情况下,才能将HAVING条件与WHERE条件的进行合并。mysql> explain extended select id,genre from movies

2017-03-13 19:02:34 268

原创 MySQL物理查询优化技术---index dive辨析

一 引子在MySQL的官方手册上有这么一句话:the optimizer can estimate the row count for each range using dives into the index or index statistics. 这是在说: 优化器为每一个范围段(如“a IN (10, 20, 30)”是等值比较, 括3个范围段实则简化为3个单值,分别是10

2017-03-13 19:02:30 2077 2

原创 MySQL子查询辨析

一 明确IN/EXISTS的语义1 “expression IN (subquery)”这样的形式,表示一个表达式变量在一个子查询中存在,其结果是布尔值,TRUE或FALSE.如果subquery 的结果中有重复值,则只要这样的值存在一次,IN格式的子查询结果就为TRUE,所以我们可以把 subquery表意为 “DISTINCT subquery”.所以,“expression IN

2017-03-13 19:02:25 345

原创 《数据库查询优化器的艺术》---勘误

《数据库查询优化器的艺术》第372页,在表14-1中, 勘误如下:1 原文:  转换为求MAX修改为:   转换为求MAX(从语义上讲,应该转为求MIN,但是,MySQL在实现的时候转为求MAX,然后又求一次反)2 原文:   转换为求MIN修改为:  转换为求MIN(从语义上讲,应该转为求MAX但是,MySQL在实现的时候转为求MIN,然后又求一次反)3 原文

2017-03-13 19:02:21 490

原创 MySQL的分页技术总结

有朋友问: MySQL的分页似乎一直是个问题,有什么优化方法吗?网上看到赶集网XX推荐了一些分页方法,但似乎不太可行,你能点评一下吗?=========================================---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适应场景: 适用于数据量较

2017-03-13 19:02:16 316

原创 再谈MySQL的子查询优化技术

朋友说:我这几天看了子查询的课程以及查阅了一些资料,给我的感受是子查询不怎么好使,能不用就尽量不用,做过的项目很少采用子查询,很多相关子查询都可以上拉至连接查询。稍微用的多一点的可能就是IN查询了 答复:---1 技术是通用的---通常都是上拉优化的思路,一个概述可以参见:http://blog.163.com/li_hx/blog/static/1839914132014223935

2017-03-13 19:02:12 594

原创 MySQL不支持子查询优化一例

一创建表create table tt1(id int primary key, c1 INT);create table tt2(id int primary key, c2 INT);insert into tt1 values(1,1),(2,2),(3,3),(4,4);insert into tt2 values(1,2),(2,2); 二 执行计划与问题mysql> e

2017-03-13 19:02:05 1126

原创 MySQL执行计划显示与执行过程不符合一例

一 建表和现象的过程如下 CREATE TABLE t1 (id1 INT, a1 INT, b1 INT, PRIMARY KEY(id1));CREATE TABLE t3 (id3 INT UNIQUE, a3 INT, b3 INT); INSERT INTO t1 VALUES (1, 1, NULL);INSERT INTO t3 VALUES (1, 1, NULL);mysql

2017-03-13 19:02:01 1114

原创 单表扫描,使用ref和range从索引获取数据一例

单表扫描,使用ref和range从索引获取数据一例---执行计划的得到的结果,和实际执行结果正好相反 缘起: 与朋友交流,过程如下:----------------------------------------你好,在吗,问个优化器索引选择的问题--请讲.我最近遇到线上一个select语句,explain选择的索引是一样的,这个索引是两个字段比如select * from t1

2017-03-13 19:01:56 4423

原创 MySQL多表连接过程中自动创建索引一例:

一 创建表如下 CREATE TABLE t1 (id INT PRIMARY KEY, a INT UNIQUE, b INT, c INT, e INT, KEY bc (b, c));INSERT INTO t1 VALUES (0, 0, NULL, 0, 0), (1, 1, 1, 1, 1), (2, 2, 1, 2, 2), (3, 3, 1, 1, 3), (6, 6, 1, 1,

2017-03-13 19:01:52 524

原创 select count(*) 和 select count(1)有什么区别?

---19.1 从语义看,明显不同:COUNT是计算行数的函数,COUNT(*)可以计算出行数,COUNT(1)也可以计算出行数,1在这里代表count函数的参数时一个常量值为1,这样,表中有多少行,理论上就计算多少次COUNT(1)。---19.2 从结果看,有相似之处。似乎同样的条件,得到同样的数字结果。---19.3 从查询执行计划看,也相似。这表明,处理过程是类似的。---19.4 从具体

2017-03-13 19:01:48 3088

原创 MySQL是怎么在源码层表达对象的-----Item对象及子对象解析(四)

掌握了Item对象, 有很多用处:1 语法的表达:     语法中,不同的对象,都被Item和其子对象表示, 这样,我们可以方便的查阅/掌握SQL语句中不同的对象, 不同的类别(本系列第三篇表达的继承关系,可以区分类别)2 SQL的执行:     对于SQL语句, SQL的执行过程,可以从对象入手跟踪. 如本节后面的示例,是一个小技巧,但实用(通过跟踪一个函数对象,来跟踪 SQL执

2017-03-13 19:01:44 498

原创 妄谈数据库框架(非整个框架全部),见笑,请多指正:

缘起: 有朋友说:在改进MySQL的优化器之前,需要先分析优化器的输出是否需要改进,插件式存储又割裂了SQL引擎的完整逻辑,虽然局部改进是可能的,但总体而言在现有框架下MySQL的优化器没有多大改进的价值。妄谈数据库框架,见笑,请多指正:一友说"插件式存储又割裂了SQL引擎的完整逻辑...总体而言在现有框架下MySQL的优化器没有多大改进的价值".我们且做个技术分析:1 插件式框架,可

2017-03-13 19:01:39 273

原创 MySQL是怎么在源码层表达对象的-----Item对象及子对象解析(三)

MySQL中,Item对象及其子对象之间的关系,参看下图.Item对象是父类,根结点.蓝色竖线和椭圆,标示了Item对象的子类,第一层子类;黄色竖线和椭圆,标示了Item对象的子类的子类,第二层子类;红色竖线和椭圆,标示了Item对象的子类的子类的子类,第三层子类;青色竖线和椭圆,标示了Item对象的子类的子类的子类的子类,第四层子类;还有一些第五层等的子类,没有标示,请自

2017-03-13 19:01:34 385

原创 MySQL是怎么在源码层表达对象的-----Item对象及子对象解析(二)

二 事例分析item_func.h文件(不限于这个文件,只是用以示例做说明)的内容, 可以掌握Item对象的基本功能.1 定义了支持的函数类型enum Functype继承了Item对象的Item_func对象,支持的函数有哪些,可以在此处观察到.所以要注意每个对象支持的具体内容,可以观察对象的定义中类似Functype之处.2 是否可以被优化,以及哪些可以被优化o

2017-03-13 19:01:30 445

原创 MySQL/PostgreSQL/Oracle架构图

MySQL的架构图   Oracle的架构图  PostgreSQL的架构图

2017-03-13 19:01:25 804

原创 MySQL 5.7 查询优化器的重构(一)---prepare阶段的重构

这个版本,把optimizer阶段的一些工作,提前到了prepare阶段.这是MySQL查询优化器的一个大的变化. 这个变化是怎么进行的, 应对了哪些场景,重构后带来了什么好处?----答案可以参见:MySQL全球开发组Optimizer团队 Guilhem 的讲述.http://mysqlserverteam.com/re-factoring-some-internals-of-pr

2017-03-13 19:01:21 586

原创 MySQL是怎么在源码层表达对象的-----Item对象及子对象解析(一)

MySQL提供了较为丰富的SQL语句,用以支持MySQL提供的主要功能。在数据库内部,MySQL又是怎么知道自己能够处理哪些对象、处理哪些事情的?如果我们输入一条SQL语句,MySQL可能报告语法错误或对象不存在等错误提示,这些提示,大致可以分为2类,一类是针对解析用户命令的如语法错误,一类是针对语义检查如说对象不存在的。其实还有其他类型如权限等检查,只是这些与本文无关,且简单故忽略莫执著于此

2017-03-13 19:01:14 778

原创 2014年与友人交流的一点总结

趋势1:云计算,淘汰大部分的运维人员趋势2:云数据库,淘汰大部分以商业数据库为职业的DBA趋势3:电商等兴起,对开源数据库技术的人员需求增多趋势4:去IOE化等运动背后的商业成本和安全问题,促进开源产业发展趋势5:MySQL和PostgreSQL为代表的开源数据库自身正蓬勃发展中

2017-03-13 19:01:10 275

原创 PostgreSQL-XL, PostgreSQL集群项目(二)

Frequently Asked Questions Q. What does XL stand for?XL is short for eXtensible Lattice. It also connotes an extra large version of PostgreSQL, in this case across multiple systems.Q. Is this a

2017-03-13 19:01:06 845

原创 PostgreSQL-XL, PostgreSQL集群项目

非原创,转自: http://www.postgres-xl.org/overview/ OverviewPostgres-XL is a horizontally scalable open source SQL database cluster, flexible enough to handle varying database workloads:OLTP write-in

2017-03-13 19:01:01 1134

原创 Is Query Optimization a “Solved” Problem?

非原创, 转自:http://wp.sigmod.org/?p=1075 Is Query Optimization a “solved” problem? If not, are we attacking the “right” problems? How should we identify the “right” problems to solve? I

2017-03-13 19:00:57 708

原创 PostgreSQL查询优化一例---使用CTE优化,兼谈松散扫描

非原创一 原文:http://bonesmoses.org/2014/05/08/trumping-the-postgresql-query-planner/Trumping the PostgreSQL Query PlannerWith the release of PostgreSQL 8.4, the community gained the ability to use CT

2017-03-13 19:00:51 1834

原创 开源数据库PostreSQL与MySQL,未来数据处理的新选择

前言:一直在思索MySQL成功的原因,所以向一些业界的朋友请教探讨,得出一点极为简单的东西如下:总结:MySQL的成功是随同互联网成长、LAMP成长、MySQL的DBA成长而成长的(功能逐步完善),它突出的特点是:因简单而易用/免费/开源/因插件框架而易扩展/复制功能领先/性能好。1 因简单而易用: 解决了新人快速上手的需求(入门问题)2 免费: 解决了平民也要使用数据库的需求

2017-03-13 19:00:46 813

原创 PostgreSQL查询结果错误一例

一 创建表CREATE TABLE t1 (a int, b int);CREATE TABLE t2 (c int, d int);CREATE TABLE t3 (e int);INSERT INTO t1 VALUES  (1,10), (2,10), (1,20), (2,20), (3,20), (2,30), (4,40);INSERT INTO t2 VALUES  (2,10)

2017-03-13 19:00:39 1103

原创 MySQL的ORDERBY...LIMIT优化思路

一 常规思路互联网展示内容的时候,通常需要分页显示内容, 这就要用到如下格式的语句:SELECT FROM single_table> ORDER BY LIMIT n对于ORDERBY子句,通常需要按指定的对象进行排序;如果ORDERBY子句加上LIMIT子句,则在排序结果的基础上,输出结果集的n行.这种方式,意味着在获取表的数据时,采取的是全表扫描的方式。二 改进思

2017-03-13 19:00:35 827

原创 MySQL是怎么使用索引条件下推的?

MySQL的ICP技术的使用条件Index Condition Pushdown (ICP) ,是索引条件下推,是MySQL利用索引快速获取数据的技术。只要在查询语句中,使用了WHERE子句,且子句中有存在索引的条件表达式,比如a>3且列上存在索引,则可能使用ICP技术对读取数据进行优化。这个技术不区分存储引擎,各个类型的存储引擎都可以使用。但是,有的时候,ICP可以被使用,有

2017-03-13 19:00:30 970

原创 简谈子查询的优化---与达梦公司@joehan100先生探讨

起因:微博上因《数据库查询优化器的艺术》一书与友人讨论内容如下:@joehan100:回复@那海蓝蓝: 试读了几章,佩服之至!你看看在书中有没有达梦7这样的子查询优化方式:http://t.cn/8sG5BHT //@joehan100:虽说MySQL/PostgreSQL的优化器比较一般,不过寸也有所长,看看应该也能学到不少东西。正文:子查询的优化,常规技术是“扁平化”,

2017-03-13 19:00:24 761

原创 子查询辨析

一好友夜读《数据库查询优化器的艺术》,至19页,看到原文如下: 列子查询。子查询返回的结果集类型是一条单一元组(return a single row)。行子查询。子查询返回的结果集类型是一个单一列(return a single column)。问我,是否这两个概念反了?  心有感念,谢谢提醒,所以特连夜写此短文,以慰好友之善意,不枉真情一片。说明:从结果集的角度看,书中还写了:

2017-03-13 19:00:19 267

原创 2014中国数据库技术大会---PostgreSQL和MySQL的存储层深度解析

http://dtcc.it168.com/speaker.html2014中国数据库技术大会4月11日下午 17:10--18:00, 大会第二天,专场6:存储和文件系统那海蓝蓝 与各位朋友分享《PostgreSQL和MySQL的存储层深度解析》专场6:存储和文件系统主持人余庆:阿里巴巴技术专家,FastDFS创始人13:30-14:20

2017-03-13 19:00:15 352

原创 分布式编程模式中的租约、事务和分布式事件机制

推荐阅读. 言简意赅,很不错的文章.原文: http://www.phome.net/e/DoPrint/?classid=8&id=680Jini 技术面向网络及分布式计算的特性决定了Jini技术必然与传统的单机系统在许多方面有概念上和实际应用中的差别。如网络的延迟、失败,或者设备的突然撤出,将导致信息的无序和丢失;资源的获得、保存、维护和回收情况更为复杂;不同实体之

2017-03-13 19:00:09 382

原创 MySQL test: it’s because of RQG that we now have a really solid MySQL Server

原文: https://www.flamingspork.com/blog/2014/03/17/ghosts-of-mysql-past-part-11-why-are-you-happy-about-this/   Ghosts of MySQL Past, part 11: Why are you happy about this?Posted on 17/03/2014 by St

2017-03-13 19:00:04 426

原创 相关子查询与不相关子查询的优化(三)

五 MySQL对相关子查询的优化5.1 非相关子查询,多种优化情况示例1: 聚集非相关子查询,没有消除子查询,但被优化为只执行一次聚集函数操作在非相关子查询中,查询执行计划如下:mysql>  EXPLAIN SELECT * FROM t1 WHERE t1.a1>(SELECT MIN(t2.a2) FROM t2);+----+-------------+-------+--

2017-03-13 18:59:56 1352

原创 一种并行查询技术介绍

原文: MySQL Query Execution using Multiple Threadshttp://www.paralleluniverse-inc.com/MySQL_query_execution_using_multiple_threads_technology.txt Technology White Paper - MySQL Query Execution usi

2017-03-13 18:59:51 303

原创 相关子查询与不相关子查询的优化(二)

四 PostgreSQL对相关子查询的优化4.1 非相关子查询,多种优化情况示例1:普通的非相关聚集子查询,被一次性地求解test=# EXPLAIN SELECT * FROM t1 WHERE t1.a1>(SELECT MIN(t2.a2) FROM t2);                                             QUERY PLAN----

2017-03-13 18:59:47 1025

原创 相关子查询与不相关子查询的优化(一)

有朋友在阅读了《数据库查询优化器的艺术:原理解析与SQL性能的艺术》一书后提出”在逻辑查询中,关于相关子查询的处理,不管是理论原理还是pgsql源码中,发现都没有明确说明”,这是一个很好的问题, 读者读得特别认真并在思考.本篇即分析一下相关和非相关子查询的优化技术.一 子查询的优化子查询的优化的基本知识,建议参看《数据库查询优化器的艺术:原理解析与SQL性能的艺术》第二章2.2.1节子

2017-03-13 18:59:42 805

原创 MySQL Enterprise Monitor 3.0.7 has been released

We are pleased to announce that MySQL Enterprise Monitor 3.0.7 is now available for download on the My Oracle Support (MOS) web site.  It will also be available via the Oracle Software Delivery Cloud

2017-03-13 18:59:37 266

原创 PostgreSQL的新书介绍

http://www.2ndquadrant.com/en/books/postgresql-9-cookbook-chinese-edition/PG社区朋友努力,为国内读者送上的好书一本.  中文版,适合PG的使用者.

2017-03-13 18:59:33 559

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除