- 博客(20)
- 资源 (4)
- 收藏
- 关注
转载 MYSQL性能调优: 对聚簇索引和非聚簇索引的认识
聚簇索引是对磁盘上实际数据重新组织以按指定的一个或多个列的值排序的算法。特点是存储数据的顺序和索引顺序一致。一般情况下主键会默认创建聚簇索引,且一张表只允许存在一个聚簇索引。在《数据库原理》一书中是这么解释聚簇索引和非聚簇索引的区别的:聚簇索引的叶子节点就是数据节点,而非聚簇索引的叶子节点仍然是索引节点,只不过有指向对应数据块的指针。因此,MYSQL中不同的数据存储引擎对聚簇索引的支持不同就很好解...
2018-04-30 14:39:12 1053
转载 图解Java 垃圾回收机制
摘要: Java技术体系中所提倡的 自动内存管理 最终可以归结为自动化地解决了两个问题:给对象分配内存 以及 回收分配给对象的内存,而且这两个问题针对的内存区域就是Java内存模型中的 堆区。关于对象分配内存问题,笔者的博文《JVM 内存模型概述》已经阐述了 如何划分可用空间及其涉及到的线程安全问题,本文将结合垃圾回收策略进一步给出内存分配规则。垃圾回收机制的引入可以有效的防止内存泄露、保证内存...
2018-04-26 15:44:20 96
转载 JVM 内存模型概述
摘要: 我们都知道,Java程序在执行前首先会被编译成字节码文件,然后再由Java虚拟机执行这些字节码文件从而使得Java程序得以执行。事实上,在程序执行过程中,内存的使用和管理一直是值得关注的问题。Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些数据区域都有各自的用途,以及创建和销毁的时间,并且它们可以分为两种类型:线程共享的方法区和堆,线程私有的虚拟...
2018-04-26 15:10:18 125
转载 深入理解Java对象的创建过程:类的初始化与实例化
版权声明:欢迎转载,注明作者和出处就好!如果不喜欢或文章存在明显的谬误,请留言说明原因再踩哦,谢谢,我也可以知道原因,不断进步! https://blog.csdn.net/justloveyou_/article/details/72466416目录(?)[-]一Java对象创建时机二 Java 对象的创建过程三 类的初始化时机与过程四 总结五 更多引用摘要: 在Java中,一个对象在可以被使...
2018-04-26 14:28:22 132
原创 类的初始化与实例化
public class StaticTest { public static int k = 0; public static StaticTest t1 = new StaticTest("t1"); public static StaticTest t2 = new StaticTest("t2"); public static int i...
2018-04-26 14:14:25 883
原创 单例模式静态内部类为何线程安全
虚拟机会保证一个类的类构造器<clinit>()在多线程环境中被正确的加锁、同步,如果多个线程同时去初始化一个类,那么只会有一个线程去执行这个类的类构造器<clinit>(),其他线程都需要阻塞等待,直到活动线程执行<clinit>()方法完毕。特别需要注意的是,在这种情形下,其他线程虽然会被阻塞,但如果执行<clinit>()方法的那条线程退出后,...
2018-04-26 13:15:11 7834 4
转载 JVM类生命周期概述:加载时机与加载过程
版权声明:欢迎转载,注明作者和出处就好!如果不喜欢或文章存在明显的谬误,请留言说明原因再踩哦,谢谢,我也可以知道原因,不断进步! https://blog.csdn.net/justloveyou_/article/details/72466105目录(?)[-]一类加载机制概述二 类加载的时机三 类加载过程四 典型案例分析五 更多引用摘要: 我们知道,一个.java文件在编译后会形成相应的一个...
2018-04-26 13:01:48 120
转载 qps预估量
qps预估量:一般预估是有开发测试运维同学一起评估。采用8/2原则。即80%的请求访问在20%的时间内到达。此时根据系统pv测算出qps值 峰值qps=(总Pv * 80%)/(60*60*24*20%)。 然后再将峰值qps/单台能承受的最高qps,就是需要的机器数量。 机器数= 总峰值pqs/压测单台机子极限qps...
2018-04-25 15:15:25 5010
转载 io存取速度
Google的Jeff Dean给的一些数据(一个talk的ppt, "Designs, Lessons and Advice from Building Large Distributed Systems" 23页),可以看到1Gbps的网络比硬盘的bandwidth高了很多,记住这些数据对设计高性能系统和对系统的性能估算很有帮助。L1 cache reference 0.5 nsBranch ...
2018-04-21 14:17:07 534
转载 BTree和B+Tree详解
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大于根的键...
2018-04-21 11:36:13 6312 1
转载 MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)
测试缘由 一个开发同事做了一个框架,里面主键是uuid,我跟他建议说mysql不要用uuid用自增主键,自增主键效率高,他说不一定高,我说innodb的索引特性导致了自增id做主键是效率最好的,为了拿实际的案例来说服他,所以准备做一个详细的测试。 作为互联网公司,一定有用户表,而且用户表UC_USER基本会有百万记录,所以在这个表基础上准测试数据来进行测试。 测试过程是目前我...
2018-04-20 18:27:12 218
转载 二叉树的前序遍历,中序遍历和后序遍历分别有什么作用
先序遍历:在第一次遍历到节点时就执行操作,一般只是想遍历执行操作(或输出结果)可选用先序遍历;中序遍历:对于二分搜索树,中序遍历的操作顺序(或输出结果顺序)是符合从小到大(或从大到小)顺序的,故要遍历输出排序好的结果需要使用中序遍历后序遍历:后续遍历的特点是执行操作时,肯定已经遍历过该节点的左右子节点,故适用于要进行破坏性操作的情况,比如删除所有节点作者:Entronad链接:https://ww...
2018-04-20 18:13:37 7640 4
转载 数据库为什么要用B+树结构-
B+树在数据库中的应用{为什么使用B+树?言简意赅,就是因为:1.文件很大,不可能全部存储在内存中,故要存储到磁盘上2.索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数(为什么使用B-/+Tree,还跟磁盘存取原理有关。)3.局部性原理与磁盘预读,预读的长度一般为页(page)的整倍数,(在许多操作系统中,页得大小通常为4k)4.数据库系统巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个...
2018-04-20 18:12:18 448
转载 用java实现七种排序算法
一、文章编写风格总览 选择排序、插入排序、冒泡排序、归并排序、快速排序、希尔排序、堆排序、 最后对各种排序算法进行比较,理清楚各种排序的优缺点。 其中快速排序是冒泡排序的增强,堆排序是对选择排序的增强,希尔排序是对插入排序的增强,这就6种了,最后一种就是归并排序。 二、选择排序 选择排序是我认为最简单的一种排序了,因为我们自己也很容易想到这种方法对数组...
2018-04-19 11:45:18 215
转载 ConcurrentHashMap实现原理及源码分析
ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),ConcurrentHashMap在并发编程的场景中使用频率非常之高,本文就来分析下ConcurrentHashMap的实现原理,并对其实现原理进行分析(JDK1.7).ConcurrentHashMap...
2018-04-18 16:50:58 157
转载 HashMap实现原理及源码分析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录 一、什么是哈希表 二、HashMap实...
2018-04-18 16:26:14 97
转载 hashmap冲突的解决方法以及原理分析
在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样。当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:HashMap<String,Object> m=new HashMap<String,Object>(); m.put("a", "rrr1")...
2018-04-18 15:53:11 592 1
原创 高可用指标
高可用感性认识:①99% 基本可用,一年停机时间,不超过88个小时。365*24*/100 = 87.6②99.9%较高可用性,一年停机不超过9个小时365*24/1000 = 8.76③99.99%具备自动恢复能力的高可用,一年停机时间不超过53分钟365*24*60/10000 = 52.56④99.999%极高可用性,一年停机不超过5分钟365*24*60/100000 = 5.256⑤99...
2018-04-16 22:50:50 1628
原创 分布式事务解决方案
分布式事物总体有两类方案:①刚性方案,全局事物(标准的分布式事物)如二阶段提交协议。【尽量保证了数据的强一致,适合对数据强一致要求很高的关键领域。实现复杂,牺牲了可用性,对性能影响较大,不适合高并发高性能场景】②柔性方案:1)可靠消息最终一致性(异步确保型)2)TCC (Try-Confirm-Cancel)(补偿型)3)最大努力通知(非可靠消息,定期校对)4)纯补偿型以下是柔性方案中的几个实现:...
2018-04-16 22:48:46 207
全文检索详细设计文档.docx
2020-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人