发表于: 2017-11-08 21:39:45

1 854


今天完成的事情:

      今天到家已经是下午, 然后因为要离家一段时间, 所以我把时间花在了陪儿子身上,今天就写下我对深度思考的理解.

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

      这个问题我是这样想的:

      ①如果使用date来保存, 日期格式固定, 在不同的国家可能有不同的规范,但是对于unix的时间戳秒数不管哪里都是通用的

      ②date计算不方便, 用bigint可以直接加减乘除, 比较方便.

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

     坏处的话目前我发现的就应该有2个

   ①有自增ID的表,如果删除了某行数据,这行的ID就会空缺了,没有连续性.

   ②自增ID无法对重复的内容进行标识, 如果是使用unique的索引的话就可以排重.

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

   索引是给数据进行标识的, 有了索引之后数据的查找会非常的快,至于多大的数据下会有性能的差别, 还没有操作, 暂时无法判定,不过估计也是需要比较大的数据了才会影响性能.

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

   唯一索引该列的数据不能出现重复的,普通索引则可以重复.在保存用户帐号的时候应该使用唯一索引,保证帐号的唯一性

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

   需要判断

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

CreateAt在建表的时候就赋值, 然后值就不改变了

updateAt则需要在每次对表进行操作改变的时候进行赋值.

CreateAt不需要开放接口, 而updateAt则需要开放接口

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

修真类型是字符型的,应该是用varchar

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

varchar类型是变长的字符长度,但是他遵守一个规定,及长度为显示长度+1

和text允许范围一样,占用的存储空间text更大

longtext的允许范围更大,占用的空间也是最大的

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

select * from table_name limit (m-1)*n,n  这是分页查询的方法以及公式,

怎么判断是否还有下一页,还未了解, 请师兄解惑.

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

我个人的理解应该就类似于在java中import一样,使用*就会导入所有数据,导致占用资源变多.不够精确

在MySQL也是一样, 查表的时候只要不是需要整张表,就尽量避免这样, 只选择自己需要的/



以上就是我对目前已经学了的东西的理解,没有去看过师兄们的日报, 可能有不准确的地方, 希望能指出.

之后的学习中再去实践验证.


返回列表 返回列表
评论

    分享到