自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 提高MySQL索引策略三:簇索引

簇索引并不是索引的一种分支类型,更确切的说,它是数据存储的一种方式.它和普通索引仅仅在实现上有着不同的区别,Innodb的簇索引实际是将索引和数据存储在同一B-Tree中的存储结构.当某表中含有簇索引,表中的数据实际是存储在索引树的叶节点中.所谓的"簇",意思着包含相邻键的数据也存储在相邻的区域中.每张表只能存在唯一一个簇索引,因为你总不能把一份数据同时存储在两个地方.因为索引的实现是各个存储...

2013-03-27 15:41:50 120

原创 提高MySQL索引策略二:前缀索引和索引的可选择度

有的时候你需要对包含很长的文本数据进行索引,这不仅让索引占用非常大的空间,索引的检索效率也会非常低下,有一种策略是在该列上建立哈希类型的索引,但是有时候我们不想因为索引值的特殊性(长度)而增加它的维护成本,所以,我们有一种更通用的方式来解决上面的问题. 首先应该想到的是截断索引长度,通过对文本数据的前缀字符进行索引,达到不仅能节省空间,而且会使一部分查询变得快速,但是如果文本数据的可选...

2013-03-14 16:35:31 231

MySQL字段比较:dateime和timestamp

我相信在绝大部分的mysql应用中,存放日期时间的字段类型都会选择使用datetime或者timestamp类型,datetime的日期范围从1001到9999年,采用8位整数将日期转换为'YYYYMMDDHHMMSS'的形式进行存放.timestamp就是unix时间戳(1970-2038),采用4为整数进行存储,并且默认提供自动更新功能.所以,很多人或者文章都会说在时间范围允许的情况下最好采...

2013-03-05 15:45:52 221

原创 提高MySQL索引策略一:隔离查询列

在mysql中执行查询时,如果没有将查询条件(条件列)隔离出来,那么查询引擎则无法利用建立在该列上的索引进行数据获取.这里的"隔离"意味着查询条件字段不能作为表达式的一部分出现,所以,如果在查询语句中指定表达式条件,就必须单独将条件列置于表达式的一边.举个简单例子, SELECT actor_id FROM sakila.actor WHERE actor_id + 1 = 5; ...

2013-03-05 15:27:31 157

原创 组合与继承(翻译)

这时一篇关于面向对象程序(软件对我来说还太宽泛)中组合和继承的概念比较文章翻译,原文:http://www.artima.com/designtechniques/compoinh.html,翻译的不好请见谅. 组合与继承-组织类关系的两种基本方法,Bill Venners,于1998年10月发布于javaworld         摘要         在我的Desion...

2012-11-21 11:01:04 104

原创 java进程阻塞

        java在linux上调用本地第三方进程时,有时候会出现阻塞的情况如终端标准输出阻塞,java调用进程停滞.我能想到得一点是在被调用程序中调用了c标准io函数导致的缓冲区阻塞的原因,java调用的进程会将第三方程序的stdin,stdout,stderr导向到java进程中,所以,如果你不读取三方进程的标准流(如果有的话),就会出现阻塞情况.        我的机器:fedor...

2012-11-16 10:07:45 608

原创 java动态编译

1.java通过getSystemJavaCompiler得到的是com.sun.tools.javac.api.JavacTool(应该吧) 2.如果不存在jdk的话(只安装jre),搜寻路径是System.getProperty("java.home")+lib+tools.jar; 3.编译时如果没有指定class生成路径,会在System.getProperty("user...

2011-12-15 17:27:33 72

原创 关于抽象

编程是将事物从客观体中抽象出来的过程。

2011-11-14 15:02:54 54

原创 hadoop和传统rdbms的比较(翻译)

翻译自:hadoop权威指南; 和RDBMS的比较:          为什么我们不能在许多磁盘上运用数据库机型大规模批量分析?为什么MapReduce是不可或缺的?          问题的答案来自于另一个磁盘的发展趋势:寻道时间的提高远不如传输速率的提高。寻道是磁盘头移动到指定位置的过程,并在其读写数据。它使磁盘操作具有延迟效应,而传输速率仅受限于磁盘带宽。        ...

2011-07-17 14:43:05 1200

原创 动态规划算法

其实我一直在想一个问题,为什么我觉得学习计算机算法比高中的数学难? 记得高中的数学那是信手撵来(当然不是每一道题目),不谈学得有多好,但是起码对待每一道数学题都有自己的思路,想法,一般都能解出来,但是为什么学习计算机算法的时候就没有这种感觉呢。宏观上看过去第一眼肯定是计算机算法一般都是文字性表述,应该比高中的数学逻辑简单吧。但是,为什么学习计算机算法就感觉特别不自然。对于简单的题目套用简单...

2011-07-08 22:54:04 123

原创 一些基于二分查找树的简单操作

1.获得给定小于给定key中的最大值,如果包含给定key,则返回该key;        不谈找到指定key,这个问题就是寻找如果将给定key插入到树中,其后趋。如果是获得大于key中的最小值,则是寻找将该值插入到树中的前趋。        2分查找树中的中序遍历就是按升序排列的数列。K floorKey(K key){ 160 K p = root; ...

2011-06-28 21:56:33 91

原创 为什么是堆?

采用树形结构,根是object,将子类的对象构成其节点。。 堆,应该是小根堆,因为对象不管是怎样的方式考虑,貌似object的key是最小的。。方便了初始化类的实例的时候,找到其父类,查找效率,优化的树形结构很好。 我承认我低端了。。。...

2011-06-24 22:47:10 91

原创 DatagramSocket的connect方法。

Notice that connect just filters the packets sent and received; that is, it does not establish a real connection with the remote host, so the method itself does not send anything and never fails, unli...

2011-05-21 17:22:32 825

原创 端口的理解-Port

说起端口,对于网络编程的人来说已经很熟系了,我原来以为我也很熟悉,可是当我深入了解的时候,计算机系统中的端口不仅仅是一个入口,可能很多人会说端口是“计算机与外界交流的出口”,其实我很好奇为什么是“出口”,这个端口到底是做何用的? 下面是java中会用到端口的一段代码: ServerSocket server = new ServerSocket(8000); 然后客户端发起...

2011-05-17 13:53:48 324

原创 自增操作原子性的理解

c中关于自增操作我测试了一小段代码: int i = 0;int increment(){ int j = 0; return ++j;}void main(){ ++i;}~ ...

2011-05-15 15:00:35 751

原创 关于虚拟机(一)

今天看书的时候突然想到了一个关于虚拟机的问题,jvm到底是如何屏蔽掉底层的操作系统而到达跨平台的。我们知道java的虚拟机一般都是这么解释的“Java虚拟机(JVM)是Java Virtual Machine的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能模拟来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统”。 当我...

2011-05-05 21:30:19 154

原创 jdbc连接的实质。

其实应该用一个问号结尾,今天同学问了一句java书如何具体的连接一个数据库的,也许你会这么说,用jdbc,然后呢?jdbc是如何连接数据库的呢?比如我向程序注册了一个驱动叫mysqlDriver,那么驱动是如何连接数据库呢?不管怎样,数据库驱动就是用java写的,那么是如何实现与不是用java写的数据库比如mysql进行通信的呢? 源码什么的看了个大概,发现一个叫“socket”的东西,还...

2011-03-29 15:06:28 130

原创 用接口实现松耦合

其实对于耦合这个概念没有太多的实际经验,只是觉得耦合就是代码之间产生了依赖,比如需要对于一个数据库连接,需要对其事务管理,不同的数据库的事务不同,具体的实现也会不同,比如: MySQLConnection conn = new MySQLConnection();MySQLTransaction tran = conn.getMySQLTransaction();tran.co...

2011-03-13 21:04:03 266

原创 java中的反射机制

java中反射机制用于动态的获取运行时类型识别,也就是所谓的RTTI,当你从网络上获取一段字节码的时候,告知你这是一个对象的实例,比如hibernat中的你需要对以一个对象进行持久化,你如何获取到它的字段,setter,getter,如何将它存入到对应的表中。或者将配置文件中的各种不同属性值加载到运行时对象属性中的,这些将通过反射机制来获取; 比如下例将一个customer对象通过hibe...

2011-02-27 12:37:12 66

原创 这里上传inside in java virtual machine

111

2011-02-21 13:41:42 80

原创 String..

今天关于String看到一个测试: String a = "abc"; String b = "abc"; String ab = "ab"; String c = ab+"c"; String d = "ab"+"c"; System.out.println(a == b

2011-02-20 22:12:19 71

原创 java中的守护线程

public class testThread extends Thread { public testThread() { } /** *//** * 线程的run方法,它将和其他线程同时运行 */ public void run(){ for(int i = 1; i <= 100; i+...

2011-02-13 16:33:11 60

原创 一个深复制例子

这是改的一个例子(关于深复制:连同该对象的引用一起复制): class Professor implements Cloneable{ String name; int age; Professor(String name,int age) { this.name=name; this.age=age; ...

2011-02-06 23:14:42 112

原创 static关键字

使用的两种情况:当你想为某些特定数据创建一份内存空间,并且所有该类的对象共享一个域,而不去管该类的对象是否创建;当你创建某个方法不想和它包含的类的对象想关联;代码:public class StaticFun{ static int i = 0;//static关键字声明的变量让该变量和该类的诸多对象无关; public static void mai...

2011-01-23 19:19:05 63

原创 Hadoop代码分析(五)

现在来总结一下hadoop从命令输入到map接收指定输入split的整个代码分析,下面是转自http://forfuture1978.iteye.com/blog/811119#comments的一张图片,介绍了hadoop的数据运行流程:我这里用的hadoop-0.20.2的代码实例,先从命令行输入开始bin/hadoop jar *** ,当hadoop的二进制文件(bin/hadoop)...

2011-01-14 17:23:06 122

原创 Hadoop代码分析(四)

 好了,大概了解了一下从输入到mapper的数据的处理过程,其实我在刚刚接触hadoop的时候很好奇,当你你在命令行输入hadoop jar ******的时候系统到底如何启动job的,诸如mapper是如何获取输入的K/V对的呢?一般的hadoop程序中的map,reduce方法是被谁而调用的呢?现在就来看看咯:当一个作业开始被提交,job.waitForCompletion(tru...

2011-01-12 11:43:07 101

原创 Hadoop代码分析(三)

下面是关于LineRecoedReader的NextKeyValue代码:public boolean nextKeyValue() throws IOException { if (key == null) { key = new LongWritable(); } key.set(pos); if (value == nul...

2011-01-11 16:25:48 94

原创 Hadoop代码分析(二)

Inputormat:describes the input-specification for a Map-Reduce job 它是一个用于处理指定输入的接口:1.用于验证输入的有效性;2.将指定输入切割成许多逻辑上的split供mapper函数处理;3.提供一个RecodeReader让mapper一点点的处理split中的数据;Inputformat其中有两个方法c...

2011-01-09 16:53:03 82

原创 Hadoop代码分析(一)

本来是要复习考试的,但是看得那个什么编译原理的书就头大。。最近搜了一下hadoop的源码分析,在javaeye上面有一个blog写的不错:http://caibinbupt.iteye.com/blog/262412,毕竟是别人的,自己原来是看过hadoop源码但是没有自己总结过,现在再重新从头整理一下。hadoop是apache就google提出来的map/reduce分布式计算框架...

2011-01-09 14:09:05 112

空空如也

空空如也

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

TA关注的人

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