发表于: 2017-04-07 22:26:06
1 1436
今天完成的事:
1)首先是表的设计,学生和学院之间是多对一的关系,因此在学生表中使用外键关联到学院表并且级联更新和删除
学生表:
学院表:
2)关于索引,忘得差不多了
索引主要是用来提高查询效率的一种手段,通常在数据量较大的表中,在经常作为查询的字段上添加索引,索引常用的有INDEX,Unique,和primary key事实上primary key只是一个名字叫primary的unique索引
1,索引的创建:alter table table_name add INDEX index_name(column_name);
create INDEX index_name on table table_name(column_namelist);
2,索引的删除:alter table table_name drop INDEX index_name;
drop INDEX index_name on table table_name;
使用一张2500条数据的表进行测试,无索引的情况下查询时间为0.002s有索引为0.001s应该是数据量不够大效果不明显,但是也能说明索引的好处
在student表中还可以给city字段添加索引,凡是经常作为查询字段的都可以添加索引优化查询
3)1,为什么 的设计中要使用Long来替换掉Date类型?
long类型操作起来方便,格式转换也比较方便
2,自增ID有什么坏处?什么样的场景下不使用自增ID?
比如一条数据的其他字段存在对这个id的依赖,此时使用自增的话就可能出现问题
3,什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
索引指的是一张表的某一个字段或多个字段组合的一个指针,通常在20W以上的数据量时使用索引会有较大的查询效率区别,索引也不能过多,会影响插入效率,当该字段常常作为查询字段时对该字段添加索引
4,唯一索引和普通索引的区别是什么,什么时候需要建唯一索引
简单来说,唯一索引一个索引值只对应一条数据,普通索引,可以一对多,当添加索引的字段值没有重复时(空值除外)建立唯一索引事实上主键约束和唯一约束都是建立在唯一索引的基础上的,也就是说添加这些约束时会自动创建或使用已有的唯一索引
5,如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
我认为要判断,因为唯一索引要求字段值不能重复
6,CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
createAt在数据被插入时赋值,而UpdateAt在数据被修改时赋值,此处应该根据业务场景来判断
7,修真类型应该是直接存储Varchar,还是应该存储int?
存储int,此处应该为外键
8,varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
长度大大于255的只能用varchar或者text,经常变化的字段用varcahr,text不可有默认值,LongText和varchar的区别在于LongText只能保存字符且最大长度比varchar大得多,比较适合存储大内容,总之尽量使用varchar,知道固定长度的用char
9,怎么进行分页数据的查询,如何判断是否有下一页?
使用limit关键字, 通过每页显示数据条数(pageSize),数据总条数(count),当前页面的页码(pageNum)这3个参数来判断是否有下一页
10,为什么不可以用Select * from table?
换句话说直接写列名有什么好处:
1. 当数据量大的时候,避免网络堵塞.
2. 当数据库的结构改变的时候,不需要修改数据库代码.
3.所见即所得
4)安装MAVEN插件
明天计划的事:
1)学习MAVEN的使用
2)复习Spring
3)完成步骤到22
遇到的问题:
MAVEN安装出了点问题,不过百度很快帮我解决了
评论