<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[variab的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/variab</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; variab]]></copyright><item><title><![CDATA[linux连接mysql命令]]></title><link>https://blog.youkuaiyun.com/variab/article/details/80729445</link><guid>https://blog.youkuaiyun.com/variab/article/details/80729445</guid><author>variab</author><pubDate>Tue, 19 Jun 2018 10:27:38 +0800</pubDate><description><![CDATA[连接MYSQL： 
    格式： mysql -h主机地址 -u用户名 －p用户密码 

1、例1：连接到本机上的MYSQL 

   找到mysql的安装目录，一般可以直接键入命令mysql -uroot -p，回车后提示你输密码，如果刚安装好MYSQL，超级用户root是没有密码的，故直接回车即可进入到MYSQL中

了，MYSQL的提示符是：mysql&amp;gt; 

2、连接到远程主机上的M...]]></description><category></category></item><item><title><![CDATA[Linux返回上一级目录的命令]]></title><link>https://blog.youkuaiyun.com/variab/article/details/80729183</link><guid>https://blog.youkuaiyun.com/variab/article/details/80729183</guid><author>variab</author><pubDate>Tue, 19 Jun 2018 10:11:25 +0800</pubDate><description><![CDATA[cd ..                  返回上一级目录cd ../..               返回上两级目录cd或cd ~           返回home目录cd - 目录名       返回指定目录]]></description><category></category></item><item><title><![CDATA[Hadoop fs 和Hadoop dfs]]></title><link>https://blog.youkuaiyun.com/variab/article/details/80523001</link><guid>https://blog.youkuaiyun.com/variab/article/details/80523001</guid><author>variab</author><pubDate>Thu, 31 May 2018 13:49:46 +0800</pubDate><description><![CDATA[(1)fs是文件系统， dfs是分布式文件系统(2)fs &amp;gt; dfs(3)分布式环境情况下，fs与dfs无区别                       (4)本地环境中，fs就是本地文件，dfs就不能用了andFS涉及到一个通用的文件系统，可以指向任何的文件系统如local，HDFS等。但是DFS仅是针对HDFS的。那么什么时候用FS呢？可以在本地与hadoop分布式文件系统的交互操作中...]]></description><category></category></item><item><title><![CDATA[ffs&amp;fs]]></title><link>https://blog.youkuaiyun.com/variab/article/details/79023972</link><guid>https://blog.youkuaiyun.com/variab/article/details/79023972</guid><author>variab</author><pubDate>Wed, 10 Jan 2018 15:03:41 +0800</pubDate><description><![CDATA[当select和where中出现的列都存在索引是发生index full scan与index fast full scan的前提
index fast full scan使用多块读的方式读取索引块，产生db file scattered reads 事件，读取时高效，但为无序读取
index full scan使用单块读方式有序读取索引块，产生db file sequential reads]]></description><category></category></item><item><title><![CDATA[组合索引]]></title><link>https://blog.youkuaiyun.com/variab/article/details/79014239</link><guid>https://blog.youkuaiyun.com/variab/article/details/79014239</guid><author>variab</author><pubDate>Tue, 09 Jan 2018 16:22:02 +0800</pubDate><description><![CDATA[关于组合索引

1.一个表建立多少个索引比较合适？比如说不大于5个  

    这个没有定论，楼主要综合查询效率和dml效率自己确定，索引可以加快select的查询速度，但也会降低delete，insert和update等dml语句的执行速度。

2.联合索引比单索引的效率高么？ 

    如果联合索引中的多个字段都在where谓词中出现了，则联合索引效率比单列索引高，因为通过]]></description><category></category></item><item><title><![CDATA[集群因子]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78973701</link><guid>https://blog.youkuaiyun.com/variab/article/details/78973701</guid><author>variab</author><pubDate>Thu, 04 Jan 2018 17:50:29 +0800</pubDate><description><![CDATA[集群因子


创建索引的时候会把索引列的数据拷贝到索引段排序存放，但是表上的数据不一定是按照索引列排序存放的，在做索引扫描的时候，相邻的索引值对应的数据行可能不在同一个数据块中，这样就会产生额外的IO，集群因子就是计算索引值相邻但对应的数据行不在同一个数据块的度量值，最佳的性能是集群因子的数量等于数据表占用的数据块数量，最差的就是集群因子的值接近数据行的值。

举个简单的例子，新华字典上]]></description><category></category></item><item><title><![CDATA[HINT]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78770984</link><guid>https://blog.youkuaiyun.com/variab/article/details/78770984</guid><author>variab</author><pubDate>Mon, 11 Dec 2017 11:30:02 +0800</pubDate><description><![CDATA[Hint概述 
基于代价的优化器是很聪明的，在绝大多数情况下它会选择正确的优化器，减轻了DBA的负担。但有时它也聪明反被聪明误，选择了很差的执行计划，使某个语句的执行变得奇慢无比。
此时就需要DBA进行人为的干预，告诉优化器使用我们指定的存取路径或连接类型生成执行计划，从 而使语句高效的运行。例如，如果我们认为对于一个特定的语句，执行全表扫描要比执行索引扫描更有效，则我们就可以指示优化器使用全]]></description><category></category></item><item><title><![CDATA[MERGE JOIN CARTESIAN]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78770286</link><guid>https://blog.youkuaiyun.com/variab/article/details/78770286</guid><author>variab</author><pubDate>Mon, 11 Dec 2017 10:39:52 +0800</pubDate><description><![CDATA[笛卡尔积合并连接,两个结果集之间做merge join,并且还是笛卡尔积的合并连接.说起来可能很绕.
我们先看合并连接的定义:通常称为排序合并连接(Sort Merge Join),因为这种连接的要求是:两个结果集是排序的,排序字段是两个结果集的连接字段.


排序合并连接(Sort Merge Join)的执行顺序如下:
1.根据sql文本的where条件,对目标表T1进行访问,对过滤]]></description><category></category></item><item><title><![CDATA[连接方式]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78749934</link><guid>https://blog.youkuaiyun.com/variab/article/details/78749934</guid><author>variab</author><pubDate>Fri, 08 Dec 2017 11:43:48 +0800</pubDate><description><![CDATA[排序合并连接(sort merge join)


访问次数：两张表都只会访问0次或1次。
驱动表是否有顺序：无。
是否要排序：是。
应用场景：当结果集已经排过序。


排序合并连接原理：如果A表的数据为（2,1,4,5,2）,B表的数据为(2,2,1,3,1) ,首先将A表和B表全扫描后排序，如下：


A B


1 1


2 1


2 2

]]></description><category></category></item><item><title><![CDATA[记录一个TRUNC函数的坑]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78722801</link><guid>https://blog.youkuaiyun.com/variab/article/details/78722801</guid><author>variab</author><pubDate>Tue, 05 Dec 2017 17:34:29 +0800</pubDate><description><![CDATA[不知道是我对TRUNC函数理解不够还是怎么的，记录一下]]></description><category></category></item><item><title><![CDATA[ORACLE水位线HWM]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78622540</link><guid>https://blog.youkuaiyun.com/variab/article/details/78622540</guid><author>variab</author><pubDate>Fri, 24 Nov 2017 11:06:41 +0800</pubDate><description><![CDATA[参考http://www.cnblogs.com/husam/p/6604437.html很详细]]></description><category></category></item><item><title><![CDATA[nologging]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78621919</link><guid>https://blog.youkuaiyun.com/variab/article/details/78621919</guid><author>variab</author><pubDate>Fri, 24 Nov 2017 10:50:17 +0800</pubDate><description><![CDATA[1、ORACLE数据库会对产生改变的操作记录REDO，比如DDL语句、DML语句，这些操作首先会放在redo buffer中，然后由LGER进程根据触发条件写到联机日志文件，如果数据库开启归档的话，还要在日志切换的时候归档。在这样一个完整的链条上的每一个环节，都可能会成为性能的瓶颈，所以需要引起DBA和数据库应用人员的注意。对于我们来说，最好的调优方式就是不产生REDO或者尽量少的产生REDO。
]]></description><category></category></item><item><title><![CDATA[Oracle的REDO和UNDO]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78617508</link><guid>https://blog.youkuaiyun.com/variab/article/details/78617508</guid><author>variab</author><pubDate>Thu, 23 Nov 2017 18:01:28 +0800</pubDate><description><![CDATA[什么是REDO 
REDO记录transaction logs，分为online和archived。以恢复为目的。 比如，机器停电，那么在重起之后需要online redo logs去恢复系统到失败点。 比如，磁盘坏了，需要用archived redo logs和online redo logs区恢复数据。 比如，truncate一个表或其他的操作，想恢复到之前的状态，同样也需要。 

什么]]></description><category></category></item><item><title><![CDATA[insert /*+append*/]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78617500</link><guid>https://blog.youkuaiyun.com/variab/article/details/78617500</guid><author>variab</author><pubDate>Thu, 23 Nov 2017 18:00:48 +0800</pubDate><description><![CDATA[关于insert /*+ append */我们需要注意以下三点：

a、非归档模式下，只需append就能大量减少redo的产生；归档模式下，只有append+nologging才能大量减少redo。
b、insert /*+ append */ 时会对表加锁（排它锁），会阻塞表上的除了select以外所有DML语句；传统的DML在TM enqueue上使用模式3（row exclusiv]]></description><category></category></item><item><title><![CDATA[Oracle归档模式]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78615591</link><guid>https://blog.youkuaiyun.com/variab/article/details/78615591</guid><author>variab</author><pubDate>Thu, 23 Nov 2017 15:48:16 +0800</pubDate><description><![CDATA[Oracle数据库有联机重做日志，这个日志是记录对数据库所做的修改，比如插入，删除，更新数据等，对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候，就会发生日志切换，这时联机重做日志组2成为当前使用的日志，当联机重做日志组2写满的时候，又会发生日志切换，去写联机重做日志组1，就这样反复进行。

 

　　如果数据库处于非归档模式,联机]]></description><category></category></item><item><title><![CDATA[ORA_HASH函数]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78612620</link><guid>https://blog.youkuaiyun.com/variab/article/details/78612620</guid><author>variab</author><pubDate>Thu, 23 Nov 2017 11:25:36 +0800</pubDate><description><![CDATA[oracle中的hash分区就是利用的ora_hash函数

partition by hash(object_id) 等价于 ora_hash(object_id,4294967295)

ora_hash(列,hash桶) hash桶默认是4294967295 可以设置0到4294967295

ora_hash(object_id,4) 会把object_id的值进行hash运算]]></description><category></category></item><item><title><![CDATA[index range scan,index fast full scan,index skip scan]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78612421</link><guid>https://blog.youkuaiyun.com/variab/article/details/78612421</guid><author>variab</author><pubDate>Thu, 23 Nov 2017 11:16:17 +0800</pubDate><description><![CDATA[index range scan(索引范围扫描)：

1.对于unique index来说，如果where 条件后面出现了 ,between ...and...的时候，那么就可能执行index range scan,如果where条件后面是=，那么就会执行index unique scan。

2.对于none unique index来说 如果where 条件后面出现了=,>,

3]]></description><category></category></item><item><title><![CDATA[执行计划的access和filter的区别]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78605822</link><guid>https://blog.youkuaiyun.com/variab/article/details/78605822</guid><author>variab</author><pubDate>Wed, 22 Nov 2017 17:29:17 +0800</pubDate><description><![CDATA[一、简要说明：
    Prediceate(谓词)：一个查询中的WHERE限制条件。
    在查看执行计划的信息中，经常会看到两个谓词filter和access，它们的区别是什么，理解了这个两个词对我们解读Oracle的执行计划信息会有所帮助。
    简单地说，执行计划如果显示是access，就表示这个谓词条件的值将会影响数据的访问路径(表还是索引)，而filter表示谓词条件的值并不]]></description><category></category></item><item><title><![CDATA[INDEX SKIP SCAN 和 INDEX RANGE SCAN]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78604822</link><guid>https://blog.youkuaiyun.com/variab/article/details/78604822</guid><author>variab</author><pubDate>Wed, 22 Nov 2017 16:07:04 +0800</pubDate><description><![CDATA[当表有一个复合索引，而在查询中有除了索引中第一列的其他列作为条件，并且优化器模式为CBO，这时候查询计划就有可能使用到SS
       Skip scan会探测出索引前导列的唯一值个数，每个唯一值都会作为常规扫描的入口，在此基础上做一次查找，最后合并这些查询
       例如：表employees (sex, employee_id, address) ，有一个组合索引(sex, empl]]></description><category></category></item><item><title><![CDATA[查空表很耗时的原因]]></title><link>https://blog.youkuaiyun.com/variab/article/details/78604703</link><guid>https://blog.youkuaiyun.com/variab/article/details/78604703</guid><author>variab</author><pubDate>Wed, 22 Nov 2017 15:59:33 +0800</pubDate><description><![CDATA[在Oracle数据的存储中，可以把存储空间想象为一个水库，数据想象为水库中的水。水库中的水的位置有一条线叫做水位线，在Oracle中，这条线被称为高水位线（High-warter mark, HWM）。在数据库表刚建立的时候，由于没有任何数据，所以这个时候水位线是空的，也就是说HWM为最低值。当插入了数据以后，高水位线就会上涨，但是这里也有一个特性，就是如果你采用delete语句删除数据的话，数据]]></description><category></category></item></channel></rss>