摘要: 1.索引设计原则 最适合设计索引的地方是where后面的字段,或者连接字句中指定的列。 使用唯一索引 使用短索引。比如char(200)的列,不需要将全部字符当成索引,可以只对前面10或者20个字符进行索引。较小的索引涉及的磁盘IO比较少,查询速度比较快,内存也能存储更多键值。 尽量使用主键或者唯一 阅读全文
posted @ 2018-06-24 10:13 jokermo 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 1.分布式 某公司有三个不同的系统,分别运行在三个不同的独立的服务器上,处理不同的业务。但是互相协调共同完成公司业务。将不同的业务分布到不同的地方,这就构成了分布式系统。 用户对系统A的访问量过大时,会导致系统A运行缓慢,甚至挂掉。由于系统A只有一份,所以会引起单点失败。 2.集群 现在公司购买了几 阅读全文
posted @ 2018-05-12 23:39 jokermo 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 高并发下的HashMap 1.ReHash rehash是HashMap扩容时的一个步骤,Hashmap的长度有限,不断插入数据,当hashmap达到一定饱和时,hash冲突概率会提高。这时候hashmap就需要进行扩容,也就是Resize。 影响发生Resize的因素有两个: 1.Capacity 阅读全文
posted @ 2018-05-07 10:49 jokermo 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1.区别 HashTable是线程安全的,HashmMap是非线程安全的 HashTable不允许键和值为null,HashMap允许键和值为null HashMap提供了可供应用迭代的键的集合,所以HashMap是快速失败的,HashTable提供对键的枚举,是安全失败的 扩容的参数不一样,Has 阅读全文
posted @ 2018-05-05 21:36 jokermo 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 注:本文属于《深入理解java虚拟机》读书笔记,想详细了解请自行看书。 1.Java堆溢出 Java堆用于存储对象实例,只要不断创建对象,并且保证GC Roots到对象之间有可到达路径来避免垃圾回收机制清除这些对象,那么对象数量达到容量限制后就会产生内存溢出异常。 首先通过内存映像分析工具(如Ecl 阅读全文
posted @ 2018-05-02 16:40 jokermo 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 0. 前言 转载请注明出处:http://www.cnblogs.com/jokermo/ volatile和synchronized都是解决多线程安全问题的方法,为了了解与使用这两个修饰符,首先需要了解什么是多线程安全问题。即多线程安全问题发生的原因。多线程安全问题产生的原因可以概括为两点: 线程 阅读全文
posted @ 2018-04-24 21:57 jokermo 阅读(150) 评论(0) 推荐(0) 编辑