发表于: 2017-07-03 23:14:26
1 1138
今天完成的任务:
深度思考
5.为什么DB的设计中要使用Long来替换掉Date类型?
答:据我所查询的,使用Long类型是因为可以节省储存空间,而且便于数据之间的比较,可以提高数据库查询速度。
6. 自增ID有什么坏处?什么样的场景下不使用自增ID?
答:1、不存在连续性;2、数据重复了自增不会处理和提示;3、在面向对象时不能保证完整性;4、分库的时候ID就不唯一了。
在做分布式数据库时,要求数据同步时,这种自增ID就会出现严重的问题,因为无法用该ID唯一标识记录。
7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
答:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息;我觉得最少得几十万的数据量建立索引会有性能差别吧;为经常需要排序、分组和联合操作的字段建立索引,还要为经常需要查询的字段建立索引。
8.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
答:
1、普通索引
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。
2、唯一索引
普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好处:一是简化了mysql对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。
9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
答:MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。所以不需要先判断。
10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
答:create_at 应该在创建记录的时候赋值,update_at应该在修改记录的时候赋值。 我觉得应该开放吧。
11.修真类型应该是直接存储Varchar,还是应该存储int?
答:修真类型应该是Varchar,字符类的吧。
明天的计划: 下载maven3 和eclipse ,继续后边的任务
收获:问题都很有深度,今天了解了个大概,以后还要慢慢消化,深入理解!
评论