培训日报3.14(mysql,guava,穿山甲等)

Posted 倾听与积累

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了培训日报3.14(mysql,guava,穿山甲等)相关的知识,希望对你有一定的参考价值。

guava答疑

(1)对于取值范围固定的属性,应尽可能将其定义为枚举类型;

(2)Iterable,Collection,List,Set,Map都是接口,它们之间的关系为:

List和Set继承Collection,Collection继承Iterable;Map属于单独的一个派系,它是最顶层的接口,对它的实现有HashMap,LinkedHashMap,TreeMap;其中TreeMap内部结构为红黑树,它存储的节点是有序的;

mysql

(1)mysql 单进程多线程数据库;orcale是多进程的;

(2)alter操作会对表加锁,导致对该表的请求阻塞;

(3)存储引擎只能在表的级别上进行指定,在库的级别上无法指定;

(4)mysql字段decimal(5,2)表示为小数部分和整数部分总共5位,小数部分两位;

(5)decimal与float、double的区别在于decimal存储的是精确度数字,适合存储金钱数字等;

(6)char是定长的,无论有没有字符,该字段都为4个字节;varchar是变长的,它其中会含有一个字节来记录存储在该字段字符的长度,若字符长度大于255则用两个字节来记录;因此,“”空串,char占用4个字节,varchar为1个字节;“aa”char为4个字节,varchar为3个字节;“abcd”char为4个字节,varchar为5个字节;

(7)text和blog都是大字段,所以建索引只能建立前缀索引;

 

其它

1.时刻记得对传入参数合法性的判断;

2.判断两个对象相等时,尽量使用guava中Objects.equals();

3.对与TOP K的排序,除了使用堆,优先队列外,也可以使用guava中的Ordering.greatestOf方法,具体使用方法如下:

Ordering<Map.Entry<String,Integer>> ordering = new Ordering<Map.Entry<String,Integer>>() {
            @Override
            public int compare(Map.Entry<String,Integer> left, Map.Entry<String,Integer> right) {
                return left.getValue()-right.getValue();
            }
        };
List<Map.Entry<String,Integer>> topKList = ordering.greatestOf(httpMap.entrySet(),K);

 

以上是关于培训日报3.14(mysql,guava,穿山甲等)的主要内容,如果未能解决你的问题,请参考以下文章

NLP导师戴志强先生 《财经日报》采访

Redis+Guava,性能炸裂!

2016日报总结

MySQL网络培训精品班-Inside君姜承尧亲授

MySQL培训简介

Redis+Guava的本地缓存组合,性能优化最佳方案