<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[臭脚大仙]]></title><description><![CDATA[不忘初期]]></description><link>https://blog.csdn.net/itjin45</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; itjin45]]></copyright><item><title><![CDATA[挂载磁盘（备忘）]]></title><link>https://blog.csdn.net/itjin45/article/details/50351053</link><guid>https://blog.csdn.net/itjin45/article/details/50351053</guid><author>itjin45</author><pubDate>Fri, 18 Dec 2015 13:01:50 +0800</pubDate><description><![CDATA[fdisk  查看磁盘
fdisk -S 56 /dev/xvdb  进行分区
mkfs.ext3 /dev/xvdb1 格式化分区
echo '/dev/xvdb1  /mnt ext3    defaults    0  0' >> /etc/fstab  挂载
mount -a]]></description><category></category></item><item><title><![CDATA[MySQL是如何优化WHERE条件的]]></title><link>https://blog.csdn.net/itjin45/article/details/44087375</link><guid>https://blog.csdn.net/itjin45/article/details/44087375</guid><author>itjin45</author><pubDate>Thu, 05 Mar 2015 21:26:52 +0800</pubDate><description><![CDATA[有些时候，我们经常会改写一些SQL，通过牺牲SQL的可读性来优化SQL的执行速度，但是大部分情况下，我们这么做是多余的，而且是不可取的，因为MySQL自身就完成了这项工作所以，我们需要多了解了解MySQL本身是如何进行SQL改写工作的。
1、去掉不必要的括号
((a AND b) AND c OR (((a AND b) AND (c AND d))))
-> 
(a AND b AND]]></description><category></category></item><item><title><![CDATA[MySQL查询优化之概述]]></title><link>https://blog.csdn.net/itjin45/article/details/44087145</link><guid>https://blog.csdn.net/itjin45/article/details/44087145</guid><author>itjin45</author><pubDate>Thu, 05 Mar 2015 21:22:33 +0800</pubDate><description><![CDATA[1、加快select语句执行速度的最有效的办法是：在where条件中被使用的列上，建立必要的索引，尤其是当列被用作外键关系时、多个表的join查询时
可以使用explain查询SQL优化器使用了哪些索引。
当然，索引建立过度，在只能小幅度的提升性能的同时，会浪费大量磁盘空间，得不偿失。
通常情况下要针对那些被执行次数非常多的，或者速度特别慢的那些SQL进行调优。
2、将查询SQL切割成各个]]></description><category></category></item><item><title><![CDATA[PostgreSQL JDBC 源码分析之fetchSize]]></title><link>https://blog.csdn.net/itjin45/article/details/42004447</link><guid>https://blog.csdn.net/itjin45/article/details/42004447</guid><author>itjin45</author><pubDate>Thu, 18 Dec 2014 13:38:19 +0800</pubDate><description><![CDATA[JDBC的statement对象，有一个setFetchSize方法，参数是一个int值，其作用是，执行查询时，一次从服务器端拿多少行的数据到本地jdbc客户端这里来
还有一个方法:setMaxRows，这个方法，作用是JDBC最多返回多少行数据给调用者。举个例子：
一个表，有100行数据，sql语句为select * from table，fetchsize设置为20，maxrows设置为5]]></description><category></category></item><item><title><![CDATA[算法笔记十一：二叉树之搜索二叉树]]></title><link>https://blog.csdn.net/itjin45/article/details/41901113</link><guid>https://blog.csdn.net/itjin45/article/details/41901113</guid><author>itjin45</author><pubDate>Fri, 12 Dec 2014 22:37:19 +0800</pubDate><description><![CDATA[二叉树：
每个节点，除了key之外，还有3个属性：父亲、左孩子、右孩子，其中，父亲一定大于左孩子，一定小于(等于)右孩子
搜索二叉树：
利用二叉树的这些性质，我们可以得出，在这样一个结构下，插入、删除、查找的步骤，最多不会超过树的高度。注意哈，这里的二叉树，并不是平衡的，所以，其树的高度并不等于lgN，所以，最坏情况下，这个树的插入、查找、删除的最差性能，等于树的节点树N，跟链表的性能相等]]></description><category></category></item><item><title><![CDATA[MySQL基础之左连接、右连接、内连接、外连接]]></title><link>https://blog.csdn.net/itjin45/article/details/41544451</link><guid>https://blog.csdn.net/itjin45/article/details/41544451</guid><author>itjin45</author><pubDate>Thu, 27 Nov 2014 12:47:22 +0800</pubDate><description><![CDATA[有2张表 t1 和 t2:
mysql> select * from t1;
+------+
| a    |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)

mysql> select * from t2;
+------+------+
| a    | b    |
+------+------]]></description><category></category></item><item><title><![CDATA[算法笔记十：计算第I大的数]]></title><link>https://blog.csdn.net/itjin45/article/details/41255309</link><guid>https://blog.csdn.net/itjin45/article/details/41255309</guid><author>itjin45</author><pubDate>Tue, 18 Nov 2014 21:46:25 +0800</pubDate><description><![CDATA[计算第I大的元素
一般的思路是，把所有的数据都排好序，然后就可以求出第I大的数，但是其实这是一种浪费，因为我们只是为了得到第I大的元素，并不需要将数据排序
这里采用的方法就是，随机从集合中取出一个树，保证其左边的数都比它小，右边都比它大，这样就计算出当前位置为其应该出现在已排好序的数组中的位置(还记得快速排序吗？)
根据这个应该出现的位置K，去跟I做比较，如果等于I，则得出结果，否则去其左边]]></description><category></category></item><item><title><![CDATA[MySQL中关于join的一个误区]]></title><link>https://blog.csdn.net/itjin45/article/details/41241641</link><guid>https://blog.csdn.net/itjin45/article/details/41241641</guid><author>itjin45</author><pubDate>Tue, 18 Nov 2014 08:35:32 +0800</pubDate><description><![CDATA[我估计应该有一部分MySQL的小白用户跟我一样，以为 A left join B on a.key=b.key and condition 等价于 A left join B on a.key = b.key where condition
假设我们有两张表，分别存放某个对象的信息1+信息2、信息3+信息4，表结构如下：]]></description><category></category></item><item><title><![CDATA[算法笔记九：桶排序]]></title><link>https://blog.csdn.net/itjin45/article/details/40657307</link><guid>https://blog.csdn.net/itjin45/article/details/40657307</guid><author>itjin45</author><pubDate>Fri, 31 Oct 2014 16:53:07 +0800</pubDate><description><![CDATA[思路：
  假设待排序的数据集，平均的分散在各个区间里(最理想的状态是每个区间有且只有一个元素)，
  那么我只要将每个数据落入到响应的区间里，然后从小到大依次从区间中取出数据，即是已排序好的结果
  这里的区间，其实就是桶的概念


空间代价：
    取决于放入桶中的元素的数据结构，我这里采用的是一个指向下一个元素的指针以及当前int元素，
    基本可以人物空间代价为O(n]]></description><category></category></item><item><title><![CDATA[常用shell命令]]></title><link>https://blog.csdn.net/itjin45/article/details/40341485</link><guid>https://blog.csdn.net/itjin45/article/details/40341485</guid><author>itjin45</author><pubDate>Tue, 21 Oct 2014 10:59:50 +0800</pubDate><description><![CDATA[获取当前shell文件路径：
baseDir=$(cd "$(dirname "$0")"; pwd)
SVN 签出无版本控制的代码：
svn  export --force http://yourrepos  path_want_to_save
查看进程的所有环境变量(这里可以看到进程的启动路径之类的哦。。)：
cat /proc/15732/environ |tr "\00" "\n]]></description><category></category></item><item><title><![CDATA[算法笔记八：基数排序]]></title><link>https://blog.csdn.net/itjin45/article/details/40322055</link><guid>https://blog.csdn.net/itjin45/article/details/40322055</guid><author>itjin45</author><pubDate>Mon, 20 Oct 2014 22:07:31 +0800</pubDate><description><![CDATA[思路：
按照个位—>十位->百位这个位数，从低位到高位，依次对待排序数组执行排序，直到最后一位，排出来的结果集就是已完成排序的结果：
比如：有三个数字：235，786，241
先按照个位来排：
241,235,786
再按照10位来排：
235,241,786
再按照百位来排：
235，241，786
最终结果：正确！#ifndef __p1__BaseNumberSort__
]]></description><category></category></item><item><title><![CDATA[如何在一台机器上运行两个MySQL实例]]></title><link>https://blog.csdn.net/itjin45/article/details/40303497</link><guid>https://blog.csdn.net/itjin45/article/details/40303497</guid><author>itjin45</author><pubDate>Mon, 20 Oct 2014 17:04:46 +0800</pubDate><description><![CDATA[1、准备两个不同的my.cnf文件，]]></description><category></category></item><item><title><![CDATA[算法笔记七：计数排序]]></title><link>https://blog.csdn.net/itjin45/article/details/40298123</link><guid>https://blog.csdn.net/itjin45/article/details/40298123</guid><author>itjin45</author><pubDate>Mon, 20 Oct 2014 11:17:20 +0800</pubDate><description><![CDATA[算法思想：
//前提条件：
//待排序集合均为正整数
//已知其最大值(也可以排序的过程中求出)


//思想：假设我知道给定一个数，其前面有N个数比我小，那么，我就知道我应该位于数组中的第几个位置上


//实现方式：对于带排序集合中的每一个数，使用其值作为在另外一个数组中的下标，并将目标数组的值加1，这样，目标数组就记录了待排序集合中的每个元素所出现的次数
//该目标数组称]]></description><category></category></item><item><title><![CDATA[算法笔记六：使用分治策略执行快速排序]]></title><link>https://blog.csdn.net/itjin45/article/details/40188681</link><guid>https://blog.csdn.net/itjin45/article/details/40188681</guid><author>itjin45</author><pubDate>Fri, 17 Oct 2014 17:41:56 +0800</pubDate><description><![CDATA[算法思想：
//采用分治策略，将原数组，分解为三部分：左边的 + 已最终定位的节点位置 + 右边的


//分解：取任意一个位置的数，将数组划分为3部分：左边+该数的最终位置+右边，继续对左右两边递归执行分解操作


//解决：求出给定位置数的最终位置，即保证左边都比它小，右边都比它大




//合并：在分解的过程中，就已经将元素的最终位置给计算好了，不需要任何操作
分]]></description><category></category></item><item><title><![CDATA[算法笔记五：利用堆结构来对数据进行排序]]></title><link>https://blog.csdn.net/itjin45/article/details/40188455</link><guid>https://blog.csdn.net/itjin45/article/details/40188455</guid><author>itjin45</author><pubDate>Fri, 17 Oct 2014 17:34:56 +0800</pubDate><description><![CDATA[算法思想：
//将数组build成最大堆格式，这样，数组的第一个元素一定是最大的
//有了这个前提，就可以从后往前迭代：将最后一个元素与第一个元素交换，这样最大值就排到了最后面
//然后对第一个元素开头的堆结构进行重建堆，使其依然满足第一个元素为最大的元素


//关键就在于建堆的逻辑


//堆数据结构：给定一个节点的下标i，其左子节点的位置为2*i+1(i右移一位+1),右子]]></description><category></category></item><item><title><![CDATA[算法笔记四：使用分治策略求最大子数组算法]]></title><link>https://blog.csdn.net/itjin45/article/details/40188349</link><guid>https://blog.csdn.net/itjin45/article/details/40188349</guid><author>itjin45</author><pubDate>Fri, 17 Oct 2014 17:21:48 +0800</pubDate><description><![CDATA[算法思想：
//求最大子数组问题：给定一个数组，求出值相加起来的最大的子数组
//当数组中全部是正数时，数组本身就是其最大子数组
//采取分治策略来解答，将数组一分为二，那么，答案要么位于左侧，要么位于右侧，要么横跨分割点。
//横跨分割点时，其解答的代价是线性的
//左侧和右侧又可以采用递归方式继续求解
//不难得出，代价为O(NlgN)
//跟传统的依次求每种可能的代价O(n^2]]></description><category></category></item><item><title><![CDATA[算法笔记三：归并排序]]></title><link>https://blog.csdn.net/itjin45/article/details/40188033</link><guid>https://blog.csdn.net/itjin45/article/details/40188033</guid><author>itjin45</author><pubDate>Fri, 17 Oct 2014 16:23:56 +0800</pubDate><description><![CDATA[算法思想：
将一个大的规模的数据，一分为二，分成两部分，分别对这两部分执行排序，然后将两个已经排好序的部分，执行归并操作。
分解—>解决—>合并
在解决的步骤中，什么条件下是阻止其继续分解的终止阀呢？：
1、分解的只有一个元素了
2、分解到了一定小的规模，采用其他算法，如插入算法来解决排序问题


最好情况：
与最坏情况相同，都是O(n*log2n)


最坏情况：
与最]]></description><category></category></item><item><title><![CDATA[算法笔记二：插入排序]]></title><link>https://blog.csdn.net/itjin45/article/details/40187945</link><guid>https://blog.csdn.net/itjin45/article/details/40187945</guid><author>itjin45</author><pubDate>Fri, 17 Oct 2014 16:19:21 +0800</pubDate><description><![CDATA[算法思想：
开辟另一个新空间，将待排中的n个元素，依次取出，插入到新空间的正确位置。
确定插入的位置：从队尾往队首依次比较，直到发现某个元素A比当前待插入元素B要小时，则B需要插入到A的后面
执行插入：将A后面的所有元素，往后移动一位，这样，A元素后面的这个位置就空闲出来，供B插入
思路举例：玩扑克牌，抓牌，插入手中已有牌的某个正确位置


最好情况：
如果待排序的数组是和期望的排]]></description><category></category></item><item><title><![CDATA[算法笔记一：概述]]></title><link>https://blog.csdn.net/itjin45/article/details/40187923</link><guid>https://blog.csdn.net/itjin45/article/details/40187923</guid><author>itjin45</author><pubDate>Fri, 17 Oct 2014 16:18:53 +0800</pubDate><description><![CDATA[分析一个算法，主要是考量它的运行的时间代价和空间代价，而在评估时间代价时，还要分析下最好情况下的代价和最坏情况下的代价。


最好情况，用来分析该算法的最佳应用场景
最坏情况，用来确定该算法的最长执行时间的上限


某些算法可能会更加的关注于平均情况，当平均情况趋向于较好情况时，是有意义的，这里就需要对其平均情况发生的概率，进行分析，但大多数算法，其平均情况基本与最坏情况相当

]]></description><category></category></item><item><title><![CDATA[MySQL数据库的隔离级别]]></title><link>https://blog.csdn.net/itjin45/article/details/40183963</link><guid>https://blog.csdn.net/itjin45/article/details/40183963</guid><author>itjin45</author><pubDate>Fri, 17 Oct 2014 12:01:18 +0800</pubDate><description><![CDATA[问题：
innodb ，如果一个session A开启事务读一条数据，另一个session B开启事务更新这条数据，那么B能够顺序提交吗？A又读到的是什么值呢？
经过测试，结果为，B可以立即更改这个记录，但是A始终都读的是B修改前的数据，即使B已经提交了。
A只有提交了之后，再select，就看到B更新之后的数据了



MYSQL有四种隔离级别：
1、未提交读
就是可以读到别人]]></description><category></category></item></channel></rss>