什么是索引下推 概述索引条件下推优化(Index Condition Pushdown (ICP) )是MySQL5.6添加的,用于优化数据查询。当使用索引条件下推优化时,如果存在某些被索引的列的判断条件时,MySQL服务器将这一部分判断条件传递给存储引擎,然后由存储引擎通过判断索引是否符合MySQL服务器传递的条件,只有当索引符合条件时才会将数据检索出来返回给MySQL服务器。索引条件下推优化可以减少存储引擎查询基础表的次数,也可以减少MySQL服务器从存储引擎接收数据的次数。
设计模式 - 工厂模式 工厂模式工厂模式可分为简单工厂、工厂方法和抽象工厂模式。简单工厂简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式.角色Factory:工厂角色工厂角色负责实现创建所有实例的内部逻辑Product:抽象产品角色抽象产品角色是所创建的所有对象的父类,负责描述所有实例所共有的公共接口ConcreteProduct:具体产品角色具体产品角色是创建目标,所有创建的对象都充当这个角色的某个具体类的实例。类图
https连接过程 前驱知识:对称加密(共享密钥加密):加密和解密公用一个密钥的方式称为共享密钥加密(common key crypto system),例如:DES、DESede(三重DES)、AEShttps://wenku.baidu.com/view/68940050f76527d3240c844769eae009581ba2cc.html非对称加密:包含公钥(private key)和私钥(public key),公钥加密、私钥解密(如果私钥加密、公钥解密称为签名。但是公钥和私钥不可以互换,因为公钥可以通过私
RabbitMQ入门 RabbitMQ简介安装步骤在centos7环境上,因为是最小化安装,需要先yum install gcc 依赖wget 对应的安装包 erlang、socat、rabbitmq-server通过rpm 安装 顺序是 erlang、socat、rabbitmq-server常用命令# 启动systemctl start rabbitmq-server# 添加web管理插件rabbitmq-plugins enable rabbitmq_management# 重启syst
redis面经整理 什么是 Redis?简述它的优缺点?简介:全称:remote dictionary server,本质是一个key-value类型的内训数据库。整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据刷新到硬盘上进行保存优点:(1)因为是纯内存操作,性能出色。每秒可以处理超过 10 万次读写操作,是已知性能最快的Key-Value DB;(2)支持多种数据结构,单个value最大的限制是1GB缺点:数据库容量受物理内存的限制,不能做海量数据高性能独写,因此 Redis 适合的场景主要局..
三个线程交替打印字符 三个线程分别打印"A"、“B”、“C”,现在需要完成三个线程交替打印,10个ABCpublic class Main { private static AtomicInteger index = new AtomicInteger(0); private static AtomicInteger epoches = new AtomicInteger(0); static Thread A = new ThreadA(); static Thread B = new Thr
时序图笔记 时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图我们在画时序图时会涉及下面7种元素:角色(Actor)系统角色,可以是人或者其他系统和子系统。以一个小人图标表示。对象(Object)对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:对象名和类名。例如:华为手机:手机、loginServiceObject:LoginService;只显示类名,不显示对象,即为一个匿名类。例如::手机、:LoginSservice。只显示对象名,不显示类名。例如
UML类图 转载:30分钟学会UML类图类图中具体类、抽象、接口和包的表示法UML类图中表示具体类具体类在类图中用矩形框表示,矩形框分为三层:第一层是类名字。第二层是类的成员变量;第三层是类的方法。成员变量以及方法前的访问修饰符用符号来表示:“+”表示 public;“-”表示 private;“#”表示 protected;不带符号表示 default。UML类图中表示抽象类抽象类在UML类图中同样用矩形框表示,但是***抽象类的类名以及抽象方法的名字都用斜体字表***示,如图2所示。UM
CopyOnWriteArrayList线程安全问题 今天在学习CopyOnWriteArrayList原理的时候,发现一个问题。CopyOnWriteArrayList更新操作是先复制原数组,然后在新数组上修改,之后再将原数组的引用指向新数组。/** The lock protecting all mutators */ final transient ReentrantLock lock = new ReentrantLock(); /** The array, accessed only via getArray/setArray.
证明:偶数长度的回文数中只有11是素数 说明回文数有两种一种是单数位数,abcba,一种是双数位数,abccba其中双数位数是质数的只有11证明举例: abc……cbaa * 100……001b * 10……01c * 1……1其中 1……1 是能被11整除,其中省略号中只要2个0参考博客:https://bbs.csdn.net/topics/392318549...
mybatis使用技巧 mybatis and,or复合查询要查询的sql:select * from user where name = ? and (age=? or city=?);方法1:不使用Example查询直接在usermapper.xml中修改sql方法2:使用Example查询sql可转换成select * from user where (name = ? and age=?) or (name=? and city=?);然后使用Example查询UserExample exampl.
两个线程交替打印helloworld 美团面试题:用2个线程交替打印helloworld:t1: ht2: et3: lt4: lt5: ot6: w……代码import java.util.concurrent.atomic.AtomicInteger;public class PrintHelloWord{ private static AtomicInteger index = new AtomicInteger(0); private static String s = "helloWor.
为啥HashMap的长度一定是2的n次方 直接说原因:计算方便hash分布更均匀计算方便当HashMap长度为2的次方时,等式 hash(key) & (length - 1) == hash(key) % length 成立解释:hash(key) % length 得到的结果 hash(key) - (hash(key) / length) * length因为HashMap长度为2的次方,所以length - 1 的值转成二进制为全1的形式(2的次方一定是 1000…… 这种形式,再减去1,剩下的一定都是1,没有
java并发编程的任务 并发编程的挑战上下文切换任务从保存到再加载的过程就是一次上下文切换单核处理器通过给每个线程分配CPU时间片来实现多线程减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。死锁避免死锁避免一个线程同时获取多个锁避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源尝试使用定时锁,使用lock.tryLock(timeout)来替代使用内部锁机制对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况资源限制的挑战概念资源限制是指在
面试智力题 病狗问题一个村庄有70户人家,每户人家养一条狗已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能够分辨其他的狗是否是病狗现在,大家决定每户人家自行处决各自的病狗,但如何知道自己的狗是病狗呢?大家必须对其他所有人的狗进行观察,但不允许指认他人的狗是病狗,只能通过别人的狗是否生病判断自己的狗是否有病如果判断自己的狗生病了,就要自行处决自己的狗 过了10天之后,所有的病狗都被处决了,问,一共有几只病狗?解析:前提:70只狗中一定有病狗情况1:1只病狗那么病狗.
每日查询记录 记录每天工作或学习过程中查询的碎片知识点,可能只是为了临时使用百度了一下,并没有理解或消化。在次记录如果有时间就可以回头学习一下2021/5/8linux中统计一个文件夹下普通文件数目$ ls -l | grep "^-" | wc -l参考博客:linuxprobe.com/linux-ls-grep-wc.html有关wc命令:https://www.cnblogs.com/vincenshen/p/6560881.html...