发表于: 2017-07-14 00:01:01

1 1185


1.今日完成

1)验证清楚:ID字段设置为自增后,新建表时不需要手动赋值

2)深度思考题

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

JAVA中的‘long'型和mysql中bigint型相比,二者的存储空间与取值范围完全一致,转换过程中不存在精度损失。

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

ID自增的坏处:作为业务逻辑的主键和记录并发\唯一性放在一个字段了,应该解耦(答案来自网友)。

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

索引是对记录按照多个字段进行排序的一种方式。对表中的某个字段建立索引会创建另一种数据结构,其中保存着字

段的值,每个值又指向与它相关的记录。这种索引的数据结构是经过排序的,因而可以对其执行二分查找。

建立索引产生性能差别,应该主要取决于待处理的数据数量和进行的处理方式。

在一个或者一些字段需要频繁用作查询条件,并且表数据较多的时候,创建索引会明显提高查询速度。

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

区别:唯一性索引列的所有值都只能出现一次,即必须唯一。

如果能确定某个数据列将只包含彼此各不相同的值,就可以把它定义为一个唯一索引。

9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?

需要,避免发生出现QQ重复

10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?

CreateAt应该在第一次新建记录的时候赋值,UpdateAt应该在该条记录更新时赋值;不开放,外部调用操作不应该对记录进行修改。

11.修真类型应该是直接存储Varchar,还是应该存储int?

存储Varchar,修真类型字段属于字符型数据。

12.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?

varchar型存储大小为输入数据的字节的实际长度。区别在于最大存储空间不一样。

13.怎么进行分页数据的查询,如何判断是否有下一页?

使用LIMIT字句指定要检索的开始页和页数

判断下一页:使用select COUNT(*) from table获得页的总数,经计算可知下一页有无。

14.为什么不可以用Select * from table?

该语句会查询全部表,处理负荷高,影响执行效率。

2.明日完成

1)完成步骤12—15;

2)总结步骤2—10中涉及的SQL语句用法和功能;
3.遇到问题

深度思考第6问“什么样的场景下不使用自增ID”不理解。

4.收获

巩固和思考前几天完成的任务积累的知识点与问题,对DBMS和SQL的认识更加深刻。


返回列表 返回列表
评论

    分享到