发表于: 2018-03-29 21:07:11
2 470
今日完成:
完成了mysql的索引,查询。
重复插入了30多条记录,update其中一条的name改成‘张三’。
测试了对name建立普通索引的和不索引情况下的查询速度。
有索引时,查询速度0.00s,没有则是0.07s,查询明显变慢。
jdk和jre的区别:jdk包含了jre和其余的java源码编译器javac等,jre则是包含java虚拟机和基本的类库。
写java程序需要jdk,只运行java程序不开发的话只需要jre。
深度思考:
5.为什么DB的设计中要使用Long来替换掉Date类型?
因为DB中时间通常只用来告诉我们时间差和大概的时间点,Long完全可以做到。
并且Long比Date更容易加减计算和导出在其他环境里操作。
6.自增ID有什么坏处?什么样的场景下不使用自增ID?
自增ID形成id1-10的时候,删除id2,2就会空出来,后续加上的id也只会从11开始。
在需要频繁增删DB的记录时,自增ID会有很多的空ID位置出现。
7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
索引也是在外另建了一个表,通过数据结构的方式指向表来使表的查询更快。
但索引会让表的增删变慢,每次增删都要更新索引。
在不需要频繁增删DB,需要频繁查询时,建立索引。
8.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
唯一索引的每个字段必须和其他字段不重复。
9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
不用,因为每个人的qq号都不同,是唯一的。
10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
CreateAt在插入记录时赋值,UpdateAt在更新记录时赋值,应该开放。
11.修真类型应该是直接存储Varchar,还是应该存储int?
可以用数字对应每个职业,int存储会更加节约空间。
12.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
varchar长度是字符串长度+1,会随字符串变化而变化长度。
存储大小:LongText>varchar>Text,Text和LongText用来存知道长度的内容。
14.为什么不可以用Select * from table?
表内容过多时,会占用过大内存,因为*代表所有列,这句就是把表全显示出来。
明日计划:
装好maven,建立maven项目。
看懂17步到底是在讲些什么东西。。
17.编写DAO,分别JdbcTemplate和Mybatis连接数据库,注意使用JDBCTemplate的时候分离Interface和Imple,使用Mybatis的时候注意理解为什么不需要Impl,注意遵守命名规范。
遇到问题:
没有
收获:
了解了mysql的大体概念
熟练了基础操作。
评论