10 2019 档案
摘要:《58到家MySQL军规升级版》 《数据库索引,到底是什么做的?》 《MyISAM与InnoDB的索引差异究竟是啥?》 《InnoDB,为何并发如此之高?》 《快照读,在RR和RC下的差异》 《InnoDB插入自增列,是表锁吗?》 《InnoDB并发插入,会不会互斥?》 《InnoDB,select
阅读全文
摘要:出处原文: 1分钟了解MyISAM与InnoDB的索引差异 数据库的索引分为主键索引(Primary Inkex)与普通索引(Secondary Index)。InnoDB和MyISAM是怎么利用B+树来实现这两类索引,其又有什么差异呢?这是今天要聊的内容。 一,MyISAM的索引 MyISAM的索
阅读全文
摘要:原文: 网络基础:TCP协议-如何保证传输可靠性 TCP协议传输的特点主要就是面向字节流、传输可靠、面向连接。这篇博客,我们就重点讨论一下TCP协议如何确保传输的可靠性的。 确保传输可靠性的方式TCP协议保证数据传输可靠性的方式主要有: 1: 校验和 2: 序列号 3: 确认应答 4: 超时重传 5
阅读全文
摘要:转载: https://zhuanlan.zhihu.com/p/34650908 事务: 说起mysql innodb存储引擎的事务,首先想到就是ACID(不知道的请google),数据库是如何做到ACID的呢?举个例子: 数据库数据存放的文件称为data file;日志文件称为log file;
阅读全文
摘要:出处: 幂等问题 8种方案解决重复提交 1.什么是幂等 在我们编程中常见幂等 1)select查询天然幂等 2)delete删除也是幂等,删除同一个多次效果一样 3)update直接更新某个值的,幂等 4)update更新累加操作的,非幂等 5)insert非幂等操作,每次新增一条 2.产生原因 由
阅读全文
摘要:出处:JAVA进程突然消失的原因? 问题描述 在实际生产环境下,如果我们遇见Java进程突然消失,该如何去排查问题? 思路 可能有几种原因: ①、Java应用程序的问题:发生OOM导致进程Crash 最常见的是发生堆内存异常“java.lang.OutOfMemoryError: Java heap
阅读全文
摘要:转自:公众号 架构师之路 问题:有一个Java服务出现了OOM(Out Of Memory)问题,定位了好久不得其法,请问有什么好的思路么? OOM的问题,印象中之前写过,这里再总结一些相对通用的方案,希望能帮助到Java技术栈的同学。某Java服务(假设PID=10765)出现了OOM,最常见的原
阅读全文
摘要:出处: 如何自己手写一个热加载 热加载:在不停止程序运行的情况下,对类(对象)的动态替换 Java ClassLoader 简述 Java中的类从被加载到内存中到卸载出内存为止,一共经历了七个阶段:加载、验证、准备、解析、初始化、使用、卸载。 接下来我们重点讲解加载和初始化这两步 加载 在加载的阶段
阅读全文
摘要:“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication) 所谓同步,就是在发出一个*调用*时,在没有得到
阅读全文
摘要:出处: Java NIO浅析 NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。 那么NIO的本质是什么样的呢?它是怎样与
阅读全文
摘要:转载: mysql在线修改表结构大数据表的风险与解决办法归纳 整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求。那么表结构也会经常修改,加字段,加索引。在线直接在生产环境的表中修改表结构,对用户使用网站是有影响。 以前我一直为这个问题头痛。当然那个时候不需要我来考虑,虽然我们没专门的dba,他
阅读全文
摘要:相关文章出处链接: MySQL优化/面试,看这一篇就够了 史上最全的MySQL高性能优化规范建议 MySQL性能优化之骨灰级,高阶神技 ! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括
阅读全文
摘要:Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 。 BIO 阻塞式I/O操作即使用的是传统 I/O操作,Tomcat7以下版本默认情况下是以BIO模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低。 配置如下(tomcat安装目
阅读全文
摘要:单线程模型 Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返回结果三个过程。其中执行命令阶段,由于Redis是单线程来处理命令的,所有每一条到达服务端的命令不会立刻执行,所有的命令都会进入一个队列中,然后逐个被执行。并且多个客户端发送的命令的执行顺序是不确定的。但是可以确定的是不会有
阅读全文
摘要:结论: 不是线程安全的 Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。 Spring 的 bean 作用域(scope)类型 1、singleton
阅读全文
摘要:java在jdk1.5中引入了注解,spring框架也正好把java注解发挥得淋漓尽致。 一、创建自定义注解 requestUrl 为我们自定义的一个参数 二、解析注解 此处使用了spring的AOP(面向切面编程)特性 @Before 前置通知:在某连接点之前执行的通知,但这个通知不能阻止连接点之
阅读全文
摘要:出处:https://www.cnblogs.com/fixzd/p/9479970.html redis分布式锁相关命令的背景 Redis 2.6.12之前使用 setnx和 expire来实现分布式锁,expire和setnx不是原子操作,setnx的节点1突然挂掉,那么expire来不及执行就
阅读全文
摘要:CSRF(Cross-site request forgery),中文名称:跨站请求伪造。 简单来说你登陆了网站A,结果没等退出又去登陆了网站B,而网站B中含有恶意请求,借着你在网站A的合法身份,一个劲的给网站A发送攻击数据。 一、CSRF攻击原理 CSRF攻击原理比较简单,如图1所示。其中Web
阅读全文
摘要:文章链接出处: 详解native方法的使用 自己实现一个Native方法的调用 JNI 开始本篇的内容之前,首先要讲一下JNI。Java很好,使用的人很多、应用极 广,但是Java不是完美的。Java的不足体现在运行速度要比传统的C++慢上许多之外,还有Java无法直接访问到操作系统底层如硬件系统,
阅读全文
摘要:什么是线程池 线程池就是以一个或多个线程[循环执行]多个应用逻辑的线程集合. 线程池的作用: 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行
阅读全文