发表于: 2019-11-07 14:42:21
1 1082
1、为什么不可以用Select * from table?
* 查询的是这个表中的所有列,但是一般情况下我们只需要查询某一个或多个字段,而不需要所有字段都查询,这样会影响效率。(这个理解了)
连接查询时,* 无法进入缓冲池。(这个不理解)
mysql中连接查询的原理是先对驱动表进行查询操作,然后再用从驱动表得到的数据作为条件,逐条的到被驱动表进行查询。
每次驱动表加载一条数据到内存中,然后被驱动表所有的数据都需要往内存中加载一遍进行比较。效率很低,所以mysql中可以指定一个缓冲池的大小,缓冲池大的话可以同时加载多条驱动表的数据进行比较,放的数据条数越多性能io操作就越少,性能也就越好。所以,如果此时使用select * 放一些无用的列,只会白白的占用缓冲空间。浪费本可以提高性能的机会。
————————————————
版权声明:本文为CSDN博主「孙晓凯」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013240038/article/details/90731874
2、为什么DB的设计中要使用Long来替换掉Date类型?
(1)这样比较统一,java中时间类型太多,容易造成混乱
(2)有利于进行计算
(3)方便数据之间的传输、转换
3、唯一索引和普通索引的区别是什么,什么时候需要建唯一索引
区别:普通索引(由关键字key或index定义的索引)的唯一任务是加快对数据的访问速度。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。唯一索引可以保证数据记录的唯一性。人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。
什么情况下需要唯一索引?
1) 基本原则是如果表中某列在查询过程中使用的非常频繁,那就在该列上创建索引。如where条件后经常使用的字段,且字段数据唯一的话,最好建立唯一索引
2) 该字段的内容不是唯一的几个值。也就是不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响到更新速度,这被称为过度索引
3) 字段内容不是频繁变化
4) 表记录太少的肯定不需要
4、JDK和JRE的区别
JRE(Java Runtime Environment),是java的运行环境。包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器),但包含java运行程序(java.exe)。
JDK(Java Development Kit),是java的开发工具包。是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
5、 任务一 13-16
评论