自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (4)
  • 收藏
  • 关注

转载 MySQL 索引条件下推

一 什么是“索引条件下推”“索引条件下推”,称为Index Condition Pushdown (ICP),这是MySQL提供的用某一个索引对一个特定的表从表中获取元组”,注意我们这里特意强调了“一个”,这是因为这样的索引优化不是用于多表连接而是用于单表扫描,确切地说,是单表利用索引进行扫描以获取数据的一种方式。二“索引条件下推”的目的...

2019-01-31 16:09:02 5816 4

转载 mysql explain中type和extra区别

很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义。1 type列官方的说法,说这列表示的是“访问类型”,更通俗一点就是:mysql找到需要的数据行的方式。一下就是从效率最差到最好顺序分别介绍下:All 这个就是所谓的全表扫描,没有用到任何的index,mysql就是从头到尾把整个表遍历一边,找到所需要的数据行。...

2019-01-31 15:44:42 297

原创 mysql 延迟关联

延迟关联:为什么叫延迟关联?延迟两个字的关键在于延迟了对列的访问。延迟关联的原理是借助了覆盖索引。覆盖索引怎么理解?覆盖两个字的关键在于所需要的值是从索引中获取而非读取表中数据,因此叫覆盖。本人认为覆盖两个字,还有上边的延迟两个字,很精确形象。延迟关联应用场景:①select * from 表 A where 条件; (select * 中的*也可以是很多列,如a,b,c,d,e…...

2019-01-31 15:05:36 1363 2

转载 Solr特殊字符转义处理

在Solr中,下列字符有特殊含义,需转义处理,否则查询下列字符会报查询错误。+ – && || ! ( ) { } [ ] ^ ” ~ * ? : \ 代码如下:public static String transformSolrMetacharactor(String input){        StringBuffer sb = new StringBuffer...

2019-01-28 16:32:18 805

转载 布隆过滤器的原理、使用场景和注意事项

什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。实现原理HashMap 的问题讲述布隆过滤器的...

2019-01-25 18:00:38 235

原创 mysql not exists 索引调优——生产环境一个实例

生产环境中出现一个问题,点击一个菜单,等待几秒后,弹出一个错误提示框。然而在测试环境没有这个问题。两个环境的区别是数据的区别,生产环境数据较多。当时初步分析可能是超时导致:点击菜单后,调用远程的一个dubbo服务,目前生产环境的dubbo服务配置如下,超时时间统一配置为了10秒:而页面上的错误提示框大概就是在10秒左右弹出,所以问题应该处在这里。修改方法有两个,①调整该dubb...

2019-01-24 13:25:39 2374 2

原创 mysql中OPTIMIZE TABLE的作用及使用

来看看手册中关于 OPTIMIZE 的描述:OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的...

2019-01-24 12:54:59 973

转载 浅析MySQL中exists与in的使用

exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录,反之如果exists里的条 件语句不能返回记录行,则当前loop到的这条记录被丢弃,exists的条件就像一个bool条件,当能返回结果集则为true,不能返回结果集则为 false如下:se...

2019-01-23 18:15:11 122

转载 MySQL索引底层实现原理

索引的本质MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然是...

2019-01-22 14:25:39 341

原创 ansible file模块删除功能容易忽略的点

今天上线时,测试环境部署了三四遍,发现代码依然是旧的,部署采用是Jenkins+ansible,后来手动把旧jar文件删除掉,测试环境才部署成功。据此推测,playbook的脚本可能存在问题。脚本截图如下:删除文件时用了file模块,state=absent,循环用的是with_fileglob,查资料发现with_fileglob后的路径一般为全路径,那就是绝对路径了,所以这里的写法...

2019-01-18 21:31:24 3171

转载 InnoDB---可重复读隔离级别的底层实现原理

可重复读的实现    Repeatable Read(可重复读):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录(读已经提交的,其实是读早于本事务开始且已经提交的),但是不能看到其他事务对已有记录的更新(即晚于本事务开始的),并且,该事务不要求与其他事务是“可串行化”的。    这句话的核心,是“但是不能看到其他事务对已有记录的更新”,那么RR隔离级别是怎么保证这一点的呢?...

2019-01-18 11:01:07 1228 1

转载 不可重复读与幻读的区别

当然,   从总的结果来看,   似乎两者都表现为两次读取的结果不一致.但如果你从控制的角度来看,   两者的区别就比较大对于前者,   只需要锁住满足条件的记录对于后者,   要锁住满足条件及其相近的记录-----------------------------------------------------------我这么理解是否可以?避免不可重复读需要锁行就行避免幻影读则...

2019-01-18 10:55:19 121

转载 MySQL 性能优化之 延迟关联(deferred join)

在高性能MySQL一书中,有这样的例子 select c1 from pro where c2='M' order by c3 limit 100000, 10; 如何使它速度更快? 1:对c2+c3做多列二次索引。2:利用延迟关联(deferred join)技术,通过覆盖索引(上面1建立的索引)来得到所需要的主键,然后再根据这些主键关联原表获得需要的行,...

2019-01-17 16:56:14 3364 1

转载 mysql高效索引之覆盖索引

概念如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),也就是平时所说的不需要回表操作判断标准使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询 注意1、覆盖索引也并不适用于任意的索引类型,索引必须存储列的值2、Hash 和f...

2019-01-17 16:25:00 155

原创 logger.debug方法正确使用方式

看开源框架源代码时,经常看到这样的代码:if (logger.isDebugEnabled()) {       logger.debug(……);}有没有思考过为什么是先判断再输出,而不是直接输出?在阿里巴巴开发手册中有这样的规范:说明:logger.debug("Processing trade with id: " + id + " and symbol: " + sym...

2019-01-17 11:29:26 28065

转载 Java8 如何正确使用 Optional

Optional是Java8提供的为了解决null安全问题的一个API。善用Optional可以使我们代码中很多繁琐、丑陋的设计变得十分优雅。这篇文章是建立在你对Optional的用法有一定了解的基础上的,如果你还不太了解Optional,可以先去看看相关教程,或者查阅Java文档。使用Optional,我们就可以把下面这样的代码进行改写。 1 2 3 4...

2019-01-17 11:20:35 210

转载 ConcurrentMaps不允许key、value为null

阅读源码可以发现,HashMap允许插入key和value是null的数据的,而ConcurrentHashMap是不允许key和value是null的。这个是为什么呢?ConcurrentHashMap的作者是这么说的: The main reason that nulls aren’t allowed in ConcurrentMaps (ConcurrentHashMaps, Concur...

2019-01-16 16:34:01 342

转载 Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法  在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。  以下是本文目录大纲:  一.ConcurrentMod...

2019-01-16 16:25:22 179

全文检索详细设计文档.docx

基于elasticSearch做的全文检索,这是详细设计文档。包括结构化数据的检索,非结构化数据(文档类,如word,pdf等)检索。结构化数据,基于logstash导入。非结构化(文档),可以通过接口,本地扫描/远程扫描进入ES。

2020-03-17

JAVA核心知识点整理.rar

JAVA核心知识点整理,针对java体系的一个核心知识点的总结,比较详细和有深度,可以提高和完善自己的能力,对求职面试也有很大的帮助。

2020-01-03

java记事本程序源码

这是一套用java语言开发的记事本程序源码,功能很完善,没有bug。

2011-01-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除