培训日报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);
时间: 2025-01-08 08:27:56

培训日报3.14(mysql,guava,穿山甲等)的相关文章

(14)mysql中的事件

概述 事件调度器是MySQL5.1后新增的功能,可以将数据库按自定义的时间周期触发某种操作,可以理解为时间触发器,类似于linux系统下面的任务调度器crontab,或者类似与window下面的计划任务.值得一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次. 查看事件功能是否开启 在使用事件这个功能,首先要保证你的mysql的版本是5.1以上,然后还要查看你的mysql服务器上的事件

14.Mysql事务控制和锁定

14.事务控制和锁定存储引擎和锁: MyISAM和MEMORY存储引擎的表支持表级锁: BDB存储引擎的表支持页级锁: InnoDB存储引擎的表支持行级锁.默认情况下,表锁和行锁都是根据执行的语句自动获得和释放,不需要额外处理.用户也可根据业务需要来手动添加和释放锁,以保证事务的完整性. 14.1 Lock table和Unlock tableLock table可以锁定用于当前线程的表.如果表被其他线程锁定,则当前线程会等待,直到可以获取所需的锁定为止.Unlock table可以释放当前线程

ubuntu 14 mysql 主从数据库热备实验

0安装数据库 sudo apt-get install mysql -server 设置root密码 1登入mysql数据库 创建用户 etc/init.d/mysql start mysql -uroot -p密码: insert into mysql.user(Host,User,Password) values("%","dba",password("123456")); grant all privileges on *.* to 'db

14.mysql悲观锁

原文地址:http://chenzhou123520.iteye.com/blog/1860954 悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态.悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据). 使用场景举例:以MySQL InnoDB为例 商品

[Google Guava] 1-4 排序: Guava强大的”流畅风格比较器”

原文链接 译者: 沈义扬 排序器[Ordering]是Guava流畅风格比较器[Comparator]的实现,它可以用来为构建复杂的比较器,以完成集合排序的功能. 从实现上说,Ordering实例就是一个特殊的Comparator实例.Ordering把很多基于Comparator的静态方法(如Collections.max)包装为自己的实例方法(非静态方法),并且提供了链式调用方法,来定制和增强现有的比较器. 创建排序器:常见的排序器可以由下面的静态方法创建 方法 描述 natural() 对

14 MySQL 内置功能--视图/触发器

#视图 select * from course inner join teacher on course.teacher_id=teacher.tid; create view course2teacher as select * from course inner join teacher on course.teacher_id=teacher.tid; #触发器 CREATE TABLE cmd ( id INT PRIMARY KEY auto_increment, USER CHAR

Mysql:FAQ:A.14 Replication

A.14 MySQL 5.7 FAQ: Replication In the following section, we provide answers to questions that are most frequently asked about MySQL Replication. A.14.1. Must the slave be connected to the master all the time? A.14.2. Must I enable networking on my m

MySQL 主从复制、主主复制、半同步复制

MySQL 复制 =============================================================================== 概述: =============================================================================== MySQL Replication:   1.主从复制的目的和架构 ★Master/Slave(主/从) Master: write/read Slave

mysql字段是自动增长类型结果却不是连续的

今天建了一张表,设置其"id"属性为自动增加类型,但是在查看所有数据的时候,却发现"id"的值不是连续增加的.建表的语法如下: mysql> create table person_list -> ( -> id int auto_increment unique, -> name varchar(15) not null, -> sex varchar(15) default "中", -> ID_C var