发表于: 2019-11-07 14:42:21

1 1083


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、唯一索引和普通索引的区别是什么,什么时候需要建唯一索引

区别:普通索引(由关键字keyindex定义的索引)的唯一任务是加快对数据的访问速度。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。唯一索引可以保证数据记录的唯一性。人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。

 

什么情况下需要唯一索引?

1)       基本原则是如果表中某列在查询过程中使用的非常频繁,那就在该列上创建索引。如where条件后经常使用的字段,且字段数据唯一的话,最好建立唯一索引

2)       该字段的内容不是唯一的几个值。也就是不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响到更新速度,这被称为过度索引

3)       字段内容不是频繁变化

4)       表记录太少的肯定不需要

 

4JDKJRE的区别

JREJava Runtime Environment),是java的运行环境。包含JVM标准实现及Java核心类库。JREJava运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器),但包含java运行程序(java.exe)。

JDKJava Development Kit),是java的开发工具包。是整个Java的核心,包括了Java运行环境JREJava工具和Java基础类库。


5、 任务一 13-16




返回列表 返回列表
评论

    分享到