美文网首页
10、索引的讲解

10、索引的讲解

作者: super1981 | 来源:发表于2017-02-16 22:35 被阅读0次

缓存和索引介绍

《IntelliJ IDEA 界面介绍》章节里已经点到了 IntelliJ IDEA 首次加载项目的时候,都会创建索引,而创建索引的时间跟项目的文件多少成正比,我也简单强调了 IntelliJ IDEA 索引的重要性。这里我们再对此进行详细说明索引、缓存对 IntelliJ IDEA 的重要性。

通过《常见文件类型的图标介绍》章节,你已经认识到 IntelliJ IDEA 下各个文件类型的图标是什么样子的。其中有一个图标我是专门进行了讲解:Java class located out of the source root。我们也都知道该图标是表示 Java 类文件没有在Source root目录下的文件夹下会显示此图标,但是其实还有一种情况也是会显示此图标的。那就是:在 IntelliJ IDEA 创建索引过程中,所有的 Java类 都是这个图标,如果你项目大的话很容易观察到的,几个文件的小项目倒是不一定会看到。所以在 IntelliJ IDEA 创建索引过程即使你编辑了代码也是编译不了、运行不起来的,所以还是安安静静等 IntelliJ IDEA 创建索引完成。

IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度,所以 IntelliJ IDEA 的索引的重要性我再唠叨一万遍都不为过。但是,IntelliJ IDEA 的索引和缓存并不是一直会良好地支持 IntelliJ IDEA 的,这某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如断电、蓝屏引起的强制关机,当你重新打开 IntelliJ IDEA,基本上百分八十的可能 IntelliJ IDEA 都会报各种莫名其妙错误,甚至项目打不开,IntelliJ IDEA 主题还原成默认状态。也有一些即使没有断电、蓝屏,也会有莫名奇怪的问题的时候,也很有可能是 IntelliJ IDEA 缓存和索引出问题,这种情况还不少。遇到此类问题也不用过多担心,下面就来讲解如何解决。

清除缓存和索引

IntelliJ IDEA 已经自带提供清除缓存、索引的路口,如上图标注 1 所示。

一般建议点击Invalidate and Restart,这样会比较干净。

但是有一个需要提醒的是,如上图红圈标注的地方:清除索引和缓存会使得 IntelliJ IDEA 的Local History丢失,所以如果你项目没有加入到版本控制,而你又需要你项目文件的历史更改记录,那你最好备份下你的LocalHistory目录。目录地址在:C:\Users\当前登录的系统用户名\.IntelliJIdea14\system\LocalHistory建议使用硬盘的全文搜索,这样效率更高。

通过上面方式清除缓存、索引本质也就是去删除 C 盘下的system目录下的对应的文件而已,所以如果你不用上述方法也可以删除整个system。当 IntelliJ IDEA 再次启动项目的时候会重新创建新的system目录以及对应项目缓存和索引。

如果你遇到了因为索引、缓存坏了以至于项目打不开,那也建议你可以直接删除system目录,一般这样都可以很好地解决你的问题。

其他

目前我电脑的 IntelliJ IDEA 是新装的,也就打开了几个小项目,所有打开的项目大小加起来不到 5M,但是他们创建的索引大家就已经上百兆了,如上图所示。所以如果你 C 盘空间不足的情况下,最好转移下system目录,方法可以根据《IntelliJ IDEA 相关核心文件和目录介绍》讲解的方法进行。

相关文章

  • 10、索引的讲解

    缓存和索引介绍 在《IntelliJ IDEA 界面介绍》章节里已经点到了 IntelliJ IDEA 首次加载项...

  • 面试必备的索引优化

    关于索引,分为以下几点来讲解(技术文): 索引的概述(什么是索引,索引的优缺点) 索引的基本使用(创建索引) 索引...

  • Innodb索引原理解析

    今天讲解mysql储存引擎(Innodb)使用的索引。大家应该都用过各种索引(主键索引/唯一索引/全文索引)等等。...

  • Lucene索引讲解

    1、IndexWriter详解 问题1:索引创建过程完成什么事? 分词、存储到反向索引中。 Lucene索引创建A...

  • 吐血总结——90%程序员面试都用得上的索引优化手册

    目录 多关于索引,分为以下几点来讲解: 一、索引的概述(什么是索引,索引的优缺点) 二、索引的基本使用(创建索引)...

  • 【转】MySQL索引操作命令小结

    MySQL索引操作命令小结 这篇文章主要介绍了MySQL索引操作命令小结,本文讲解了创建索引、查询索引、删除索引等...

  • MySQL索引原理及实现

    MySQL数据库支持多种索引,例如B树索引、哈希索引、全文索引等,本文着重讲解下B树索引。 主要内容: 索引本质 ...

  • es原理--两篇文章

    infoQ讲解倒排索引 博客园讲解压缩原理,以及es搜索原理

  • 索引原理-BTree讲解

    一.索引定义 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表...

  • MySQL 细致讲解索引

    MySQL 如何正确的使用索引 真致信息技术 2019-11-13 17:46:04 学习索引,主要是写出更快的s...

网友评论

      本文标题:10、索引的讲解

      本文链接:https://www.haomeiwen.com/subject/qspcwttx.html