Archive | 六月, 2012

Mysql索引说明

关于mysql索引的说明,比较散的说明。

  1. 索引的好处,除了提高检索效率之外:另外是有利于排序&分组

索引最大益处就是将该字段作为检索条件的时候可以极大的提高检索效率,加快检索时间,降低检索过程中所需要读取的数据量。索引还有一个非常重要的用途,那就是降低数据的排序成本。每个索引中索引数据都是按照索引键键值进行排序后存放的,所以,当我们的Query 语句中包含排序分组操作的时候,如果我们的排序字段和索引键字段刚好一致,MySQL Query Optimizer就会告诉mysqld 在取得数据之后不用排序了,因为根据索引取得的数据已经是满足客户的排序要求。

那如果是分组操作呢?分组操作没办法直接利用索引完成。但是分组操作是需要先进行排序然后才分组的,所以当我们的Query 语句中包含分组操作,而且分组字段也刚好和索引键字段一致,那么mysqld 同样可以利用到[......]

阅读全文

Tags: , ,

Comments { 0 }

java 并发相关理论整理

在整理java并发相关内容的时候发现,很多都要有些前提或者术语,尽管整理这些是以基于工程或者实践的角度。但是这些更像定义、定理的东西也是理解了,后面基于其的实现和应用的理解才足够完整和有依据。

一、?线程安全

当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替运行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么这个类就是线程安全的。

显然只有资源竞争时才会导致线程不安全,因此无状态对象永远是线程安全的

二、Happens-before法则

Java存储模型有一个happens-before原则,就是如果动作B要看到动作A的执行结果(无论A/B是否在同一个线程里面执行),那么A/B就需要满足happens-before关系。

happens-before完整规则:

  • 同一个线程中的每个Acti[......]

阅读全文

Tags: , ,

Comments { 0 }