发表于: 2019-03-02 18:34:21

1 678


今天完成的事情:

1、昨天虽然完成了数据库的备份和恢复,但未使用指定的sql格式,今天使用sql格式再次进行数据库的备份和恢复。

1)使用Navicat进行数据库的备份和恢复,只需右键表格转储SQL文件,删除数据记录后再右键数据库运行SQL文件即可。

2)使用SQL命令导入导出

2、给姓名建索引,通过百度深入了解什么是索引.

索引分为2种,聚集索引和非聚集索引聚集索引存储记录是物理上连续存在,一个表只能有一个,MySQL里主键就是聚集索引非聚集索引是逻辑上的连续,物理存储并不连续,一个表可以存在多个。

引又可以细分为普通索引、唯一索引、全文索引、组合索引

1,普通索引:最基本的索引,没有任何限制,是我们大多数情况下使用到的索引。

2,唯一索引:与普通索引类型,不同的是唯一索引的列值必须唯一,但允许为空值。

3,全文索引:全文索引(FULLTEXT)仅可以适用于MyISAM引擎的数据表;作用于CHAR、VARCHAR、TEXT数据类型的列。

4,组合索引:将几个列作为一条索引进行检索,使用最左匹配原则。

MySQL的索引还有btree索引和hash索引之分

由于hash索引只适用等值查询,不支持索引排序和范围查询,通常情况下我们直接使用btree索引即可。

btree索引又名B+树索引B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的节点间有指针相互链接。在B+树上的常规检索,从根节点到叶子节点的搜索效率基本相当,不会出现大幅波动,而且基于索引的顺序扫描时,也可以利用双向指针快速左右移动,效率非常高。

3、深度思考给哪些列建立索引?

id列由于我们设为主键已自动建立聚集索引,不用理会。我们线下报名的数据表面对的是老师,老师查询最多的就是学生的姓名、qq和修真类型,所以我们给姓名、qq和修真类型设立索引即可。由于姓名和修真类型存在相同的可能且在表中为varchar类型,我们为他建立全文索引;qq作为联系方式不存在相同的可能,为他建立唯一索引。

4、插入数据,查看有索引和无索引的情况下,Sql语句执行的效率

插入10条和100条数据时有无索引区别不大,或许要插入更多数据才能看出区别

5、深度思考

Q为什么DB的设计中要使用Long来替换掉Date类型?

A:首先由于时区关系,在获取当前时间的时候,各个地区在同一个时间点会有不同的时间表示,其次date在Java和mysql中间转换时易发生误差,无法保持精确度。

Q自增ID有什么坏处?什么样的场景下不使用自增ID

A:删除后一条数据后ID顺序依然存在,比如输入10条数据,id110,删除最后一条后,插入新数据的ID11,不会变成10,在需要经常删除数据的情况下会不适用。

Q唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。

A普通随意不检查数据的唯一性,当你向插入表中一行数据时,该行数据需要更新到索引表,如果索引表中的字段值与其他值重复了,普通索引不会做出处理。

唯一索引恰恰相反,当你向插入表中一行数据时,随后会更新索引表。若是插入的索引字段值与其他值重复了,数据库不会插入这条数据,结果就是索引表不会更新这条数据,表不会插入这条数据。

需要索引字段中的值具有唯一性,例如主键就是一种唯一索引。

6,下载jdk7,maven3、IDEA并配置环境。

JDK和JRE的区别,简单来说JDK是开发环境和行环境的集合,自带一个JRE;JRE是行环境。

明天计划的事情:学会使用1dea及maven3

遇到的问题:1、对于深度思考中的部分问题无法给出答案

 2、配置环境时出现如下错误

通过百度发现在 Windows10 中,因为系统的限制,path 变量只可以使用 JDK 的绝对路径。%JAVA_HOME% 会无法识别,导致配置失败。

收获:

通过深入思考对于索引的认知更深刻了,学会了java和maven3环境的配置,学会了idea的安装及激活


返回列表 返回列表
评论

    分享到