发表于: 2017-11-08 21:39:45
1 850
今天完成的事情:
今天到家已经是下午, 然后因为要离家一段时间, 所以我把时间花在了陪儿子身上,今天就写下我对深度思考的理解.
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也是一样, 查表的时候只要不是需要整张表,就尽量避免这样, 只选择自己需要的/
以上就是我对目前已经学了的东西的理解,没有去看过师兄们的日报, 可能有不准确的地方, 希望能指出.
之后的学习中再去实践验证.
评论