发表于: 2017-05-14 16:33:04
1 1082
今日完成的事;
1,用Navicat跑了一遍在有无索引的情况下查询数据的情况,有索引时查询用时很短(100万条数据)。
2,把深度思考中有关数据库的问题思考并进行相应的查询理解。
明日计划:
明天有事请了半天假,下午把其余的深度思考问题进行一个扫尾。
遇到的问题:
有关数据库的问题,因为涉及到的场景不同,对于同一问题网上会有不同的观点与解答,就像小马过河一样,不自己去尝试不可能知道河水深浅的。但自己对数据库的理解目前也仅限于此,只能看看各家观点,在以后的工作中自己去体会。
收获:有问题引导着自己去想,去查,在此过程中对数据库的理解得到了进一步的加深。
深度思考:
5.为什么DB的设计中要使用Long来替换掉Date类型?
---常见的数据库有oracle、sqlserver、Mysql、access、Sybase这几种,其中access有Long型,oracle和sybase我没查到,MySQL和sqlserver没有Long型,所以对这个问题存疑,另外,关于时间的用时间戳的会比较多点。
6.自增ID有什么坏处?什么样的场景下不使用自增ID?
---自增ID,无法用该ID来唯一标识记录,在数据库做移植时,也会出现各种问题
7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
---DB索引可以类比于书记的目录,它的存在有助于快速找到所需要的数据。我在对100万的数据进行查询时,使用索引就有比较大的差别,因此,涉及到数据量大的时候就可以考虑用索引。
8.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
---区别是目的不一样吧,使用唯一索引是为了保证数据的唯一性,而普通索引是为了提高查询速度。
9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
---建立唯一索引后,再插入数据时,如果该数据已经存在,MySQL将拒绝插入新数据。
http://blog.csdn.net/xrt95050/article/details/5556559
10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
---created_at是在创建表时候赋值的,updated_at则在对表有更新时会进行赋值。这两个记录数据库操作时间的字段,不应该开放接口给外部调用。
评论