03 2019 档案

摘要:Mysql丢数据及主从数据不一致的场景 随着对MySQL的学习,发现了MySQL的很多问题,最重要的就是丢数据的问题。对于丢数据问题,我们应该了解丢数据的场景,这样在以后的学习中多考虑如何去避免及解决这些问题。 1.MySQL数据库层丢数据场景 本节我们主要介绍一下在存储引擎层上是如何会丢数据的。 阅读全文
posted @ 2019-03-17 12:39 CaiXinCX 阅读(725) 评论(0) 推荐(0)
摘要:一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分为以下五个阶段: 1、数据库表设计 项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部 阅读全文
posted @ 2019-03-17 11:36 CaiXinCX 阅读(870) 评论(0) 推荐(0)
摘要:1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: 最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注 阅读全文
posted @ 2019-03-17 11:34 CaiXinCX 阅读(186) 评论(0) 推荐(0)
摘要:本文通过8个方法优化Mysql数据库:创建索引、复合索引、索引不会包含有NULL值的列、使用短索引、排序的索引问题、like语句操作、不要在列上进行运算、不使用NOT IN和<>操作 1、创建索引 对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的, 阅读全文
posted @ 2019-03-17 11:31 CaiXinCX 阅读(293) 评论(0) 推荐(0)
摘要:1、安装nginx和tomcat 我这里是使用docker安装的。安装流程可参照 dockerfile 这里安装了两个tomcat,端口分别是42000和42001。第二个tomcat的首页随便加了些代码区分 2、nginx配置 #这里的域名要和下面proxy_pass的一样 upstream fe 阅读全文
posted @ 2019-03-16 23:00 CaiXinCX 阅读(155) 评论(0) 推荐(0)
摘要:自然排序: TreeSet 会调用集合元素的 compareTo(Object obj) 方法来比较元素之间的大小关系,然后将集合元素按升序排列。 Comparable 的典型实现: BigDecimal、BigInteger 以及所有的数值型对应的包装类:按它们对应的数值大小进行比较 Charac 阅读全文
posted @ 2019-03-16 10:31 CaiXinCX 阅读(2792) 评论(0) 推荐(0)
摘要:今天项目开发,需要通过两个条件去查询数据库数据,同时只要满足一个条件就可以取出这个对象。所以通过取出的数据肯定会有重复,所以要去掉重复项。 如果用list集合接收两次的返回对象,那么肯定是有重复对象在list集合中,一开始我想到的是TreeSet,但知道TreeSet存放对象,一定要重写compar 阅读全文
posted @ 2019-03-16 10:29 CaiXinCX 阅读(403) 评论(0) 推荐(0)
摘要:Set中元素不可以重复,是无序的(这里无序是指存入元素的先后顺序与输出元素的先后顺序不一致) HashSet:内部的数据结构是哈希表,是线程不安全的。 HashSet中保证集合中元素是唯一的方法:通过对象的hashCode和equals方法来完成对象唯一性的判断。 如果对象的hashCode值不同, 阅读全文
posted @ 2019-03-16 10:28 CaiXinCX 阅读(12095) 评论(0) 推荐(0)
摘要:JDK1.7中 使用一个Entry数组来存储数据,用key的hashcode取模来决定key会被放到数组里的位置,如果hashcode相同,或者hashcode取模后的结果相同(hash collision),那么这些key会被定位到Entry数组的同一个格子里,这些key会形成一个链表。 在has 阅读全文
posted @ 2019-03-16 10:27 CaiXinCX 阅读(622) 评论(0) 推荐(0)
摘要:HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 1、HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized(同步)的,并可以接受nu 阅读全文
posted @ 2019-03-16 10:26 CaiXinCX 阅读(146) 评论(0) 推荐(0)
摘要:HashMap 是一个用于存储Key-Value 键值对的集合,每一个键值对也叫做Entry。这些个Entry 分散存储在一个数组当中,这个数组就是HashMap 的主干。 HashMap 数组每一个元素的初始值都是Null。 1. Put 方法的原理 调用Put方法的时候发生了什么呢? 比如调用 阅读全文
posted @ 2019-03-16 10:25 CaiXinCX 阅读(492) 评论(0) 推荐(0)
摘要:主要设计上的变化有以下几点: 1、不采用segment而采用node,锁住node来实现减小锁粒度。 2、 设计了MOVED状态 当resize的中过程中 线程2还在put数据,线程2会帮助resize。 3、使用3个CAS操作来确保node的一些操作的原子性,这种方式代替了锁。 4、sizeCtl 阅读全文
posted @ 2019-03-16 10:24 CaiXinCX 阅读(466) 评论(0) 推荐(0)
摘要:一、背景: 1、线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 2、效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈 阅读全文
posted @ 2019-03-16 10:23 CaiXinCX 阅读(181) 评论(0) 推荐(0)
摘要:1、 Vector、ArrayList都是以数组(是Object类型)的形式存储在内存中,LinkedList则以链表的形式进行存储 2、 如果是jdk6的话,采用Array.of()方法来生成一个新的数组,如果是jdk5.0的话,使用的是System.arraycopy方法(将数组拷贝) 3、 L 阅读全文
posted @ 2019-03-16 10:21 CaiXinCX 阅读(109) 评论(0) 推荐(0)
摘要:一、JVM性能调优策略 二、性能调优 1、Java线程池(java.util.concurrent.ThreadPoolExecutor) 大多数JVM6上的应用采用的线程池都是JDK自带的线程池,之所以把成熟的Java线程池进行罗嗦说明,是因为该线程池的行为与我们想象的有点出入。Java线程池有几 阅读全文
posted @ 2019-03-16 10:20 CaiXinCX 阅读(196) 评论(0) 推荐(0)
摘要:8位:Byte(字节型) 16位:short(短整型)、char(字符型) 32位:int(整型)、float(单精度型/浮点型) 64位:long(长整型)、double(双精度型) boolean(布尔类型) 1)四种整数类型(byte、short、int、long): byte:8 位,用于表 阅读全文
posted @ 2019-03-16 10:17 CaiXinCX 阅读(119) 评论(0) 推荐(0)
摘要:Collection List LinkedList 非同步 ArrayList 非同步,实现了可变大小的元素数组 Vector 同步 Stack Set 不允许有相同的元素 Map HashTable 同步,实现一个key--value映射的哈希表 HashMap 非同步, WeakHashMap 阅读全文
posted @ 2019-03-16 10:15 CaiXinCX 阅读(145) 评论(0) 推荐(0)
摘要:1)对于==,比较的是值地址是否相等 如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址 2)equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同 对于equals方法,注意:equals方法不能作用于基 阅读全文
posted @ 2019-03-16 10:12 CaiXinCX 阅读(323) 评论(0) 推荐(0)