- 博客(29)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 MySQL—2、B-Tree,B+Tree,聚集索引,非聚集索引
今天研究下,mysql中的B-tree索引,通过这篇文章你可以了解到,mysql中的btree索引的原理,检索数据的过程,innodb和myisam引擎中btree索引的不同,以及btree索引的好处和限制。B-Tree 索引是 MySQL 数据库中使用最为频繁的索引类型,除了 Archive 存储引擎之外的其他所有的存储引擎都支持 B-Tree 索引。不仅仅在 MySQL 中是如此,实际上在其他...
2018-04-26 11:21:08 1536
转载 MySQL—1、数据库索引的实现原理及查询优化
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。使用索引的目的在于提高查询效率,这篇文章梳理一下索引的实现原理和应用。不同的存储引擎索引实现的数据结构不同MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如B-Tree索引,哈希索引,全文索引等,主要存储引擎有MyISAM、InnoDB、MEMORY和ME...
2018-04-26 10:19:53 846
转载 Redis技能—1.Redis分布式锁(正确版注意)
前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足...
2018-04-25 17:46:09 400
原创 2018面试——8.设计模式专题
不知道大家有木有遇到手写设计模式的情况,反正楼主遇到了,这东西一段时间不看还真想不起来。1、写一下单例模式2、写一下工厂模式3、写一下代理模式4、写一下装饰者模式5、写一下模板模式...
2018-04-25 16:26:45 442
原创 2018面试——6.Zookeeper专题
1、有了解过zookeeper吗?讲一下你对分布式事物的理解?如果要你实现分布式事务你怎么做?2 、如何用zookeeper实现分布式锁的? 3、分布式一致性是啥?原理?几种实现的优缺点4、zk的选主过程,脑裂问题如何解决...
2018-04-25 16:23:06 464
原创 2018面试——4.JVM&多线程&锁
1、聊一下垃圾收集器,如果对象太大会在哪里分配内存? 垃圾收集器主要 CMS垃圾收集器与G1收集器2、创建线程池有几种方法?其中一个最大线程数参数是做什么的?Java线程池的分析和使用美团线程池面试题3、内置锁的实现原理synchronized?原理4、notify的实现原理是什么?跟park unpark有什么区别通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程display...
2018-04-25 16:20:35 334
原创 2018面试——3.Spring专题
原 spring原理-1.Spring Bean的生命周期原 spring原理-2.spring容器的启动过程原 spring原理-3.spring的循环依赖是怎么解决的:Spring循环依赖的三种方式原 spring原理-4.spring异常处理的三种方式原 spring原理-5.Spring 中异常处理方法的总结...
2018-04-25 16:19:23 744
原创 2018面试——2.Mysql专题
1、MySQL存储引擎知道吧?SQL 的优化说一下?所涉及到的数据结构?数据库索引的实现原理及查询优化2、B-Tree,B+Tree,聚集索引,非聚集索引?B-Tree,B+Tree,聚集索引,非聚集索引3、MySQL的分库分表了解吗?用过吗?分库分表欢迎留言补充,楼主也会逐步完善!...
2018-04-25 16:18:43 1265
原创 2018面试——1.Redis专题
问题是多变的,但是知识点是不变的,而且是相互连通的。所以掌握了知识点融会贯通才能以不变应万变。融合往往在脑子里进行,楼主尽量通过遇到的面试题来把他们串起来。1、Redis有那些数据结构?你用过哪些?(这算是很普通的一个问题切入方式了)Redis的数据结构(包含了跳表的实现)用过的数据结构:字符串String,SortedSet。String的应用场景:作为字典key-value的形式存储,业务场景...
2018-04-25 16:17:53 499
原创 Redis技能—1.Redis分布式锁(这里介绍的方法居然是错误的)
使用过Redis分布式锁么,它是什么回事?(这里介绍的这两种方式其实在原子性方面都存在这漏洞:正确解法)先拿setnx来争抢锁,抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放。这时候对方会告诉你说你回答得不错,然后接着问如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样?这时候你要给予惊讶的反馈:唉,是喔,这个锁就永远得不到释放了。紧接着你需要抓一...
2018-04-23 19:04:40 774
原创 spring原理-5.Spring 中异常处理方法的总结
前言在编程过程中,我们总是会遇到各种各样的一样,受检异常和非受检异常,也可以对这些异常进行重写或者扩展,总而言之,这就涉及到一个处理异常的问题。好的异常处理方式既容易配置又可以保持使用端的友好交互,更为重要的是在出现问题的时候快速的帮助我们定位问题。事实上,对代码的理解很总要,这样你就知道什么时候应该抛出什么异常了,比如数组越界,文件过大,栈越界,连接超时这些标准异常,等等。当然,在什么时候抛出什...
2018-04-23 19:04:23 318
原创 spring原理-4.spring异常处理的三种方式
Spring 统一异常处理有 3 种方式,分别为:使用 @ ExceptionHandler 注解实现 HandlerExceptionResolver 接口使用 @controlleradvice 注解使用 @ ExceptionHandler 注解使用该注解有一个不好的地方就是:_进行异常处理的方法必须与出错的方法在同一个Controller里面。使用如下: 1 @Controller ...
2018-04-23 19:04:12 1091
原创 spring原理-3.spring的循环依赖是怎么解决的:Spring循环依赖的三种方式
引言:循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错。下面说一下Spring是如果解决循环依赖的。第一种:构造器参数循环依赖Spring容器会将每一个正在创建的Bean 标识符放在一个“当前创建Bean池”中,Bean标识符在创建过程中将一直保持在这个池中,因此如果在创建Bean过程中发现自己已经在“当前创...
2018-04-23 19:04:04 710
原创 spring原理-2.spring容器的启动过程
要想很好理解这三个上下文的关系,需要先熟悉spring是怎样在web容器中启动起来的。spring的启动过程其实就是其IoC容器的启动过程,对于web程序,IoC容器启动过程即是建立上下文的过程。spring的启动过程:首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境;其...
2018-04-23 19:03:53 999
原创 spring原理-1.Spring Bean的生命周期
作者:大闲人柴毛毛链接:https://www.zhihu.com/question/38597960/answer/247019950来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Bean的生命周期其实是与spring容器的初始化过程相互衔接的。(更多内容可以参考以上知乎链接)对于普通的Java对象,当new的时候创建对象,当它没有任何引用的时候被垃圾回收机制回收...
2018-04-23 19:03:45 731
原创 Redis技能—Redis的集群:集群的分片
分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集。分片能做什么Redis 的分片承担着两个主要目标:允许使用很多电脑的内存总和来支持更大的数据库。没有分片,你就被局限于单机能支持的内存容量。允许伸缩计算能力到多核或多服务器,伸缩网络带宽到多服务器或多网络适配器。分片方式(多种)有很多不同的分片标准(criteria)。我们能找到许多...
2018-04-23 18:07:31 3396
原创 Redis技能—Redis的持久化
Redis如何做持久化的?bgsave做镜像全量持久化,aof做增量持久化。因为bgsave会耗费较长时间,不够实时,在停机的时候会导致大量丢失数据,所以需要aof来配合使用。在redis实例重启时,会使用bgsave持久化文件重新构建内存,再使用aof重放近期的操作指令来实现完整恢复重启之前的状态。对方追问那如果突然机器掉电会怎样?取决于aof日志sync属性的配置,如果不要求性能,在每条写指令...
2018-04-23 17:44:43 950
转载 IO多路复用—由Redis的IO多路复用yinch
linux IO多路复用有epoll, poll, select,epoll性能比其他几者要好。名词比较绕口,理解涵义就好。一个epoll场景:一个酒吧服务员(一个线程),前面趴了一群醉汉,突然一个吼一声“倒酒”(事件),你小跑过去给他倒一杯,然后随他去吧,突然又一个要倒酒,你又过去倒上,就这样一个服务员服务好多人,有时没人喝酒,服务员处于空闲状态,可以干点别的玩玩手机。至于epoll与...
2018-04-23 16:56:40 18103 6
转载 Redis技能—底层IO多路复用
这是网上找到的比较全的Reids IO多路复用资料,此部分其实和Redis的键失效机制有一定的衔接。最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首...
2018-04-23 16:00:13 2603
原创 Redis技能—2.Redis分布式锁(redis的key过期的实现)
上一篇文章介绍了Redis的分布式锁,主要是运用Redis的key失效机制来避免死锁问题的出现。这篇文章就来介绍一下Redis的Key过期实现。参看另一篇文章:https://blog.csdn.net/Happy_wu/article/details/79695415...
2018-04-23 14:52:02 1390
原创 Redis的数据结构—2.List结构做异步队列(消息队列)
使用过Redis做异步队列么,你是怎么用的?一般使用list结构作为队列,rpush生产消息,lpop消费消息。当lpop没有消息的时候,要适当sleep一会再重试。如果对方追问可不可以不用sleep呢?list还有个指令叫blpop,在没有消息的时候,它会阻塞住直到消息到来。 如果对方追问能不能生产一次消费多次呢?使用pub/sub主题订阅者模式,可以实现1:N的消息队列。如果对方追问pub/s...
2018-04-23 11:17:17 1630
原创 4.常用数据结构-B树,B+树
B树(B-tree)注意:之前有看到有很多文章把B树和B-tree理解成了两种不同类别的树,其实这两个是同一种树;1、概念:B树和平衡二叉树稍有不同的是B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引技术里大量使用者B树和B+树的数据结构,让我们来看看他有什么特点;2、规则:(1)树种的每个节点最多拥有m个子节点且m>=2,空树除外(注:m阶代表一个树节点最多有多少个查找路径...
2018-04-20 17:16:21 417
原创 3.常用数据结构-跳表
一、什么是跳表 跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,可以被看做二叉树的一个变种,它在性能上和红黑树,AVL树不相上下,但是跳表的原理非常简单,目前在Redis和LeveIDB中都有用到。 在对有序顺序表进行搜索时,使用二分查找时间复杂度是O(logn),但是有序顺序表的插入和删除却是O(n)的算法。 在对有序链表进行搜索时,时间复杂度是O(n),但是对链表的插入算法却是O(1...
2018-04-20 17:09:19 525
原创 2.常用数据结构-AVL树
AVL树是带有平衡条件的查找二叉树。这个平衡条件要容易保持,而且他要保证树的深度为O(logN)原文地址:http://blog.csdn.net/qq_25806863/article/details/74755131平衡条件一个最理想的平衡条件是左右两个子树的高度完全相等,但只有节点数量为2^n-1的树才满足这个条件(n是层数,2层要3个,3层要7个)。这个条件太严格,不好用。如果只要求根节点...
2018-04-20 17:02:32 212
原创 1.常用数据结构-红黑树
R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。要想了解红黑树,不防先自己建一个红黑树:https://www.cs.usfca.edu/~galles/visualization/RedBlack.html红黑树的特性:(1)每个节点或者是...
2018-04-20 16:27:19 278
转载 红黑树、B(+)树、跳表、AVL等数据结构,应用场景及分析
在网上学习了一些材料。这一篇:https://www.zhihu.com/question/30527705AVL树:最早的平衡二叉树之一。应用相对其他数据结构比较少。windows对进程地址空间的管理用到了AVL树红黑树:平衡二叉树,广泛用在C++的STL中。map和set都是用红黑树实现的。我们熟悉的STL的map容器底层是RBtree,当然指的不是unordered_
2018-04-20 16:01:33 661
原创 写接口时需要用到的几个注解
public String index(@RequestParam(value = "action", required = false) String action, @RequestParam(value = "notIncludeTypeId", required = false) int notIncludeTypeId){ @PathParam @Query...
2018-04-16 18:19:27 2075
原创 Redis的数据结构—1.简单介绍,序集合SortedSet的实现,跳表的实现
Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。有序集SortedSet算是redis中一个很有...
2018-04-09 14:44:47 2683
实验六 SQL 语句综合训练
2012-06-10
实验五 SQL SERVER 完整性与安全性
2012-06-10
实验四 数据更新与视图
2012-06-10
实验三 数据库
2012-06-10
数据库 定义
2012-06-10
数据库实验报告
2012-06-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人