File tree Expand file tree Collapse file tree 1 file changed +42
-2
lines changed Expand file tree Collapse file tree 1 file changed +42
-2
lines changed Original file line number Diff line number Diff line change @@ -151,6 +151,33 @@ Java 8的ConcurrentHashMap同样是通过Key的哈希值与数组长度取模确
151151### 悲观锁乐观锁、如何写对应的SQL
152152[ https://www.jianshu.com/p/f5ff017db62a ] ( https://www.jianshu.com/p/f5ff017db62a )
153153
154+ ### 索引
155+ #### 原理
156+ 我们拿出一本新华字典,它的目录实际上就是一种索引:非聚集索引。我们可以通过目录迅速定位我们要查的字。而字典的内容部分一般都是按照拼音排序的,这实际上又是一种索引:聚集索引。
157+
158+ 主要使用[ B+树] ( https://www.jianshu.com/p/3a1377883742 ) 来构建索引
159+
160+ #### 分析
161+ 好处:
162+
163+ 1 . 快速取数据;
164+ 2 . 保证数据记录的唯一性;
165+ 3 . 实现表与表之间的参照完整性;
166+
167+ 优点:
168+
169+ 1 . 大大加快数据的检索速度;
170+ 2 . 创建唯一性索引,保证数据库表中每一行数据的唯一性;
171+
172+
173+ 缺点:
174+
175+ 1 . 索引需要占物理空间。
176+ 2 . 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。
177+
178+ #### 使用场景
179+ 如果某个字段,或一组字段会出现在一个会被频繁调用的 WHERE 子句中,那么它们应该是被索引的,这样会更快的得到结果。为了避免意外的发生,需要恰当地使用唯一索引,并且我个人不推荐使用全文索引,尤其对于汉字来说,全文索引的开销太大了,得不偿失。
180+
154181# 设计模式
155182## 模式分类举例
156183### 创建型
@@ -214,6 +241,19 @@ cglib工具:利用asm开源包,对代理对象类的class文件加载进来
214241
215242## 存储查询大量的数据
216243
244+ ![ ] ( https://github.com/xbox1994/2018-Java-Interview/raw/master/images/j6.jpg )
245+
246+ ### 实现思路
247+
248+ * 文件被切块存储在多台服务器上
249+ * HDFS提供一个统一的平台与客户端交互
250+ * 每个文件都可以保存多个副本
251+ * HDFS上的文件和实际存储位置对应关系靠NAMENODE管理
252+
253+ ### 优点
254+ 1 . 每个数据的副本数量固定,直接增加一台机器就可以实现线性扩展
255+ 2 . 有副本让存储可靠性高,可以处理的吞吐量增大
256+
217257## 控制拿数据库连接池资源
218258问题:数据库连接池就那么几个,但是有很多来拿怎么办?加个超时限制怎么加?
219259
@@ -226,11 +266,11 @@ cglib工具:利用asm开源包,对代理对象类的class文件加载进来
226266
227267词典文件
228268
229- ![ ] ( http ://img.my.csdn.net/uploads/201209/10/1347269599_3828.jpg )
269+ ![ ] ( https ://github.com/xbox1994/2018-Java-Interview/raw/master/images/j7.gif )
230270
231271倒排索引文件
232272
233- ![ ] ( http ://hi.csdn.net/attachment/201202/13/0_1329141580k34Q .gif)
273+ ![ ] ( https ://github.com/xbox1994/2018-Java-Interview/raw/master/images/j8 .gif)
234274
235275### Lucene存储原理
236276
You can’t perform that action at this time.
0 commit comments