发表于: 2017-09-21 12:48:57

4 697


今天完成的事情:

1.继续MysqlNavicat的学习和使用

① 初步了解索引,在本例中,name以及id区分度高,可以建立索引。

② 插入十条数据后,查看sql语句在索引存在与否的情况下的效率。

2.Mysql数据库

Mysql是一种关系型数据库,数据保存于不同表中,以矩阵形式储存,运用SQL语言访问数据库。由于有开源版的存在,建立数据库的成本大大降低,因此Mysql非常流行。

3深度思考题:
为什么DB的设计中要使用Long来替换掉Date类型?

在具体使用过程中,date有特定的格式!,数据必须遵从某一特定格式(例如D/M/Y)才能被识别。不同国家的时间表示也不同。在Mysql中用bigint(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)代替date 储存,保证数据有效性的同时避免了date转换的问题。

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

自增ID多个表存在时,没有办法确定唯一标识吧。

什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?

是为了提高查询效率而诞生的一种储存结构,相当于图书的目录存在。常常用于查询的字段可以建立索引。
唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。

唯一索引和普通索引区别在与其列的值不能重复,换句话来所,在要求数据不能重复时,需要建立唯一索引。
⑤如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?

不太理解,qq号存在的话,不是就插入不了么。

明天计划的事情:

1 配置maven,java基础的回炉再造。

遇到的问题:

1 插入10条数据后,查询学校带有工业的数据时, 有无索引(college),运行速度没有什么区别。增加至100条数据、索引更换为name也一样。猜测应该是数据还是不够多,索引没有用武之地。

2 开始时间采用date类型时,导入导出过程中出现问题,部分时间没有正确显示。修改成特定格式后,方能通过。(师兄们的报名贴中的时间格式没有统一ORZ)

收获:

1 索引的相关概念:是为了提高查询效率而诞生的一种储存结构,相当于图书的目录存在。由于也是一种储存结构,所以占用物理空间。在对表进行增删改查时,索引也要动态更改。因此,为了减少消耗,建立索引应当选取区分度高的列,遵循最左前缀匹配原则(b+树原理查询,每次查询复合字段从左到右的属性,)。

实际上,按自己的理解,索引相对于表是一个有序排列的子集,在查询过程中可以仅通过索引查询到具体数据,而无需全局查询,从而提高查询效率。索引适用于大量数据的情况下,对主键,外键,常搜索的列进行索引的建立。

 



返回列表 返回列表
评论

    分享到