发表于: 2017-08-09 22:54:21
2 1174
今天完成的任务:
1. 查看深度思考中Mysql相关的一些问题,将自己思考的结果写在日报中,并查阅之前师兄的日报,看看是否有合自己思路接近或者是完全不一致的地方。
5.为什么DB的设计中要使用Long来替换掉Date类型?
数据库比较高效和安全。
在mysql中long对应bigint类型。所以问题改成bigint与date的区别。
Long对应的是-2^63----2^63-1之间的所有整型数据
Date对应日期 年月日 1000-01-01-----9999-12-31
使用bigint来替换date的好处是:date会受到时区的限制,并且有时候不需要获取当时的时间。格式也会受到限制。Bigint对时间差的处理更加方便。并且也可以清楚表示出时间的信息。date类型只在MySQL中有意义,在java中并没有这种格式。
6.自增ID有什么坏处?什么样的场景下不使用自增ID?
坏处:不具有连续性;不能识别重复信息;
不使用自增id:当数据中存在唯一标识符时就可以不使用;数据需要经常修改时不使用。
7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
DB索引:db的索引相当于书的目录,在查找书中内容的时候可以快速的锁定位置,如果没有索引,就需要自己从书的第一页翻到最后一页来查找。
索引的建立是根据表中的一列来建立,建立索引会对数据进行排序,从而在查找时更加方便快捷。建立索引只是存储数据的一列的值,而不是所有列。索引除了保存这列的值,还会保存一个指向这一行的指针,这样就可以在列中找到数据后获得整行的指。否则只能获取某一个值是没有意义的。索引存储的时候(“Jesus”, 0x82829)。
索引一般使用b-tree来创建数据结构。
B_TREE的查找
在B_TREE上查找x,现将x的关键字与根结点的n个关键字di逐个比较,然后做如下处理:
若x.key==di,则查找成功返回;
若x.key<d1,则沿着指针c0所指的子树继续查找;
若di<x.key<d(i+1),则沿着指针ci所指的子树继续查找;
若x.key>dn,则沿着指针cn所指的子树继续查找。
8.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
普通索引可以有重复数据出现,唯一索引只可以有一条数据。
需求中出现不可重复的时候可以使用唯一索引。
9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
不需要,唯一索引会自动查找是否重复,如果存在就不能插入。
10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
CreateAt是在建立时更新,UpdateAt在修改后更新。不用外部调用,可以使用触发器赋值。
11.修真类型应该是直接存储Varchar,还是应该存储int?
都可以,int和varchar可以互相转化。Int中可以存储4个字节,varchar可以存储255字符,65535字节。
12.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
根据实际的意义来确定,比如姓名就需要比较少的字符,可以大概进行计算汉字,字母数字占得字符数来分配。
TINYTEXT 最大长度是 255 (2^8 - 1) 个字符。
TEXT 最大长度是 65535 (2^16 - 1) 个字符。
MEDIUMTEXT 最大长度是 16777215 (2^24 - 1) 个字符。
LONGTEXT 最大长度是 4294967295 (2^32 - 1) 个字符
13.怎么进行分页数据的查询,如何判断是否有下一页?
暂时不写,后面接触到了再答
14.为什么不可以用Select * from table?
之前我也是用的select,不太清楚为什么不可以,我之前遇到的问题是没有使用数据库。Use 数据库名称;就可以了。
2. 下载Java 7,并配置环境变量,百度搜索一下JDK和JRE的区别,并将结论用自己的话写在日报中。
JRE: Java Runtime Environment java运行环境
JDK:Java Development Kit java开发工具包
Jre是java运行的环境基础,可以运行java的程序
Jdk包含了jre,另外还有开发工具。
3. 下载Maven3,并配置好环境变量。
下载好后配置不知道去哪里。
4. 安装eclipse
安装时时间很长,报错Executing bootstrap tasks
重新下载了离线版安装就可以了。查了之前的错误是可能网络连接问题,或者杀毒软件阻止。
Maven创建好了以后不会使用install 和clean查看。。。百度了也没找到,可能太基础了,明天再继续。
明天的计划:
创建好maven,然后开始学习任务1-17.
遇到的问题:
1. Int和varchar的区别还不清楚,int只可以存储4个字节的内容太少了吧,那么怎么来存储修真类型。。。(深度思考11)
2. 配置java7不知道怎么做,安装过后就没有了。。。
3. 使用install 和clean。
收获:
数据库的深度思考的题目中了解了很多新知识,安装了软件。
评论