发表于: 2018-03-27 05:56:24
1 616
今天完成的事情:
上次完成到任务1.10。
经过测试,无索引时插入一万条数据用时大概是0.1秒,有索引时大概是0.3秒,虽然每次执行的时间不太稳定,但还是能看出来差别的,有索引的时候插入效率会慢一些,因为要同步更新索引。
了解到数据库索引的数据结构基础一般是平衡树(B+tree),等看完数据结构后再来回顾这部分知识吧。
索引分为聚集索引和非聚集索引,聚集索引是指该字段索引顺序与数据库中数据的物理存储顺序相同,所以一个表只能有一个聚集索引。
还有一些其它分类法,唯一索引、主键索引等等,现在也还搞不太清楚。
适合建立索引的情况,只说记得的:
该列重复值不多并且经常用于查询的时候;
经常用于表连接的键,添加索引可以加快连接速度;
where条件子句中的键,添加索引可以加快查询速度;
不适合建立索引的情况:
该列值的种类很少的时候,例如性别这种,添加索引并不能加快查询速度;
表的数据量不大的时候,没必要建立索引;
不是经常用于查询的字段没必要建立索引;
还有很多情况,需要在实践中慢慢加深理解,先继续任务。
任务1.11
查看深度思考中mysql相关的一些问题。
问题5:为什么DB的设计中要使用Long来替换掉Date类型?
思考:如果在数据库中使用Date类型来存储时间数据的话,Java程序中与之对应的字段类型不管是Date还是String,每一次存取都需要进行格式的转换,Java中的Date类型与数据库中的格式也不一样,而且似乎JavaBean中也很少使用Date类型,总之很麻烦,这是之前项目的经验感觉。不过之前倒是没使用过Long类型。感觉应该有格式和转换方面的原因吧。
百度了一下,好像讨论这问题的都是和修真院的任务有关。原因解释是方便计算时间差和方便与Java之间的传输。感觉是否替换也不是绝对的,暂时先了解一下,等以后再来回看这问题。
问题6:自增ID有什么坏处,什么场景不适用自增ID?
思考:自增ID首先一般是和业务没有关系的,但是占用了一个字段,感觉其实很多时候是用不上的。而且自增ID的值都是有上限的,如果数据量特别大的话,可能会出现用完的情况?当表中已经有唯一性并且可排序的字段时,感觉自增ID不需要。或者当表中数据不多或不需要排序时,应该也不需要?
百度之,都有修真树的讲解视频,但太长了,先大概了解下,等任务做完再深度思考吧。
其它问题也先不看了,感觉都是些零散的知识要点,在还没经过系统的学习复习前,并不能很好的把握和理解这些知识点,还是先建立起完整的知识结构体系比较重要。继续任务。
任务1.12
下载安装Java8并配置了环境变量。环境变量只配置了JAVA_HOME以及在PATH里加入了%JAVA_HOME%\bin,JAVA_HOME变量据说一些工具像tomcat等会用到,而配置bin目录则是为了在命令行可以直接执行Java命令。CLASSPATH环境变量没有配置,Java1.5后就不需要配置这个环境变量了,如果以后用到的话再配置。
JRE是Java运行时环境,就是说你电脑上必须安装了JRE,才能运行Java编写的软件。比如别人给了你一个Java代码写的游戏,但你电脑是玩不了的,因为没有Java软件的运行环境——JRE。
JDK是Java开发工具包,也就是如果你要进行Java开发,必须要下载和用到的东西,里面是一些Java的类库之类的。JDK里是包含JRE的,所以下载个JDK就够了。
任务1.13
下载maven3并配置好了环境。只需要配置一个MAVEN_HOME并把%MAVEN_HOME%\bin加入PATH路径。作用也是命令行可以直接执行maven命令,是否有其它作用暂未知。
任务1.14
下载Eclipse或者是IDEA,配置好Maven。IDEA不用配置Maven,Eclipse也分自带或者外部,推荐使用外部Maven。
eclipse配置maven:Windows>Preferences>Maven>User Settings里的User Settings选择刚安装的maven的settings.xml文件,我的路径是:D:\CODE\apache-maven-3.5.3\conf\settings.xml。
任务1.15
创建一个maven项目。
我用的是eclipse,File>New>Maven Project新建项目,我勾选了Create a simple project,下一步,写好Group ID和Artifact ID(一般是包名和项目名)就可以完成创建了。
任务1.16
在src/main/java下随便创建一个java文件,clean,install.查看本地的.m2下是否成功看到有Jar包。
eclipse的maven clean、install等命令都在选中项目右键的Run As里,或者选中项目点任务栏的Run的Run As里。
maven的install命令是把打包好的jar包安装到本地仓库,maven本地仓库的默认地址是C:\用户\.m2,如果更改过maven的settings设置文件,就去自己设置的仓库目录里查看。
应该是说的这个jar包吧,jnshu是我的项目名。
今天完成了任务1.11到任务1.16,其实应该算是昨天的(3月26日),今天(3月27日)会继续下面的任务。
明天计划的事情:
继续下面的任务。
之前用过maven,但是忘得差不多了,明天看看有关maven的知识。(看任务进度,或者等到任务1全部完成时再和mybatis等一起总结。)
遇到的问题:
1.任务1.12配置Java环境变量时遇到个问题,因为想到CLASSPATH环境变量不需要配置了,就去看了下CLASSPATH指向的那两个jar包,发现在Java安装路径的lib目录里没找到dt.jar和tools.jar这两个包,开始以为是挪地方了,也没在意,后来查了下貌似不是挪地方了,而是我安装的问题。网上大多说是安装的两次路径相同,后面安装的jre覆盖了jdk中的lib目录,所以那两个jar包丢失了,但我记得只让选了一次路径啊。卸载了重新装,依然只让选了一个路径。仔细看了下才发现问题,原来我安装的不是jdk,而是不知道什么时候下载的一个jre。
开始安装的是红圈的,后来发现下载日期和大小不对,应该安装下面这个:
2.任务1.13配置maven环境变量时,发现配置完成后命令行执行mvn -v不成功,提示没有mvn命令,检查了下发现path路径里MAVEN_HOME前后的%有一个写成了$。
3.任务1.16开始创建Java文件时无法创建,提示没有Source Folder,过了一会儿等出现了如下图JRE上面的这几个目录就可以了,应该是还没编译好?
4.任务1.16执行install时控制台console输出了错误信息,原因是eclipse还没有配置JDK环境,默认使用的是JRE环境,无法编译Java文件。在Windows>Preferences>Java>Installed JREs里添加自己的JDK安装路径并选择,再重新执行就成功了。
收获:
对索引的了解加深了些。
复习了JDK、eclipse、maven的安装及环境配置等,对这些工具更熟悉了些。
评论