发表于: 2017-12-12 09:28:05

1 686


完成

1.数据表的中文与拼音改回英文。

2.插入十个数据,查看有索引和无索引的执行速度。

a.有索引

b.无索引

区别:数据太少,没有区别。

3.深度思考

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

DATE有固定的格式,不同的地区有不同的时间表示方法,而且外国有夏令时与冬令时之分,非常麻烦

大多数时候我们并不关心某一个时间点,而是发生一个动作后,需要的时间,BigInt非常方便做减法而不用转化(Longsql中以bigint表达)。

b.自增ID有什么坏处?什么样的场景下不使用自增ID?(https://v.qq.com/x/page/u05032qt6rk.html?)

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

索引是对数据库表中一列或多列的值进行排序的一种结构,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。当然索引也有好处就是查询速度快,它利还是大于弊的所以请慎重使用索引。

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

普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件 (WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如 一个整数类型的数据列)来创建索引。

普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。

如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好 处:一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值 是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合, 人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。

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

不需要,唯一索引会自动查找是否重复,如果存在就不能插入。

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

CreateAt 是在表创建的时候被赋予值 不会给外部的接口

UpdateAt 在每次更新体检数据的时候 被赋予值 也不会给外部接口


问题

深度思考的内容都是百度或者从师兄那里借鉴来的,自己感觉无从下手。


收获

虽然还是半懂不懂,但学习新知识嘛,进一寸有一寸的欢喜,温故而知新,稳扎稳打。


计划

把剩下的问题做完,安装java。










返回列表 返回列表
评论

    分享到