Java面试知识点之数据库篇(一)
前言:数据库的相关知识,在面试中也经常出现,笔者认为非常有必要对此类知识进行相关总结。
1.索引
索引是对数据库表中一列或多列的值进行排序的结构,是帮助数据库高效获取数据的数据结构。
通俗理解:索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息;在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库,从而提高查询速度。
索引的优点:
1)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
2)可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
3)可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
4)在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
5)通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
索引的缺点:
1)创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
2)索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
3)当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
具体参考:
https://blog.csdn.net/u010425776/article/details/60968248
http://www.cnblogs.com/KissKnife/archive/2009/03/30/1425534.html
https://www.cnblogs.com/aspwebchh/p/6652855.html
https://www.cnblogs.com/tgycoder/p/5410057.html
2.事务
事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。
其四个基本特性为:原子性、一致性、隔离性和持久性。
对一致性的理解:
一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。也就是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
拿“转账”例子说明:
假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。
具体参考:
https://blog.csdn.net/u010425776/article/details/60968283
https://www.cnblogs.com/hebao0514/p/5490698.html
https://www.cnblogs.com/fjdingsd/p/5273008.html
3.数据库的乐观锁和悲观锁
悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。
乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。
具体参考:
http://www.open-open.com/lib/view/open1452046967245.html
4.数据库三大范式
具体参考:
https://blog.csdn.net/u010425776/article/details/60968300
5.数据库连接池
数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。
具体参考:
https://www.cnblogs.com/aspirant/p/6747238.html
https://blog.csdn.net/u011088260/article/details/53311165
by Shawn Chen,2018.4.8日,晚。
Java面试知识点之数据库篇(一)的更多相关文章
- Java面试知识点之线程篇(三)
前言:这里继续对java线程相关知识点进行总结,不能间断. 1.yield()方法 yield()的作用是让步.它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执 ...
- Java面试知识点之线程篇(二)
前言:接上篇,这里继续对java线程相关知识点进行总结. 1.notify和notifyall的区别 notify()方法能够唤醒一个正在等待该对象的monitor的线程,当有多个线程都在等待该对象的 ...
- Java面试知识点之线程篇(一)
前言:在Java面试中,一定会遇到线程相关问题,因此笔者在这里总结Java中有关线程方面知识点,多数从网上得来(文中会贴出主要参考链接),有些也是笔者在面试中所遇到的问题,如有错误,请不吝指正.主要参 ...
- Java面试知识点之计算机网络篇(一)
前言:在Java面试中,计算机网络的知识也是一项重点,因此笔者在此对计算机网络的相关知识进行总结. 1.OSI参考模型 自下而上:物理层(物理介质,比特流).数据链路层(网卡.交换机).网络层(IP协 ...
- Java面试知识点之虚拟机篇(一)
前言:Java虚拟机的重要性不言而喻,不管是在实际工作中,还是面试中. 1.JVM架构 要点: 主要了解Java虚拟机运行时数据区:程序计数器.Java虚拟机栈.本地方法栈.Java堆和方法区. 参考 ...
- JAVA面试常见问题之数据库篇
1.MySQL 索引使用的注意事项 更新频繁的列不要加索引 数据量小的表不要加索引 重复数据多的字段不要加索引,比如性别字段 首先应该考虑对where 和 order by 涉及的列上建立索引 2.D ...
- Java 面试知识点解析(六)——数据库篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(四)——版本特性篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(五)——网络协议篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
随机推荐
- Updatepanel 后端返回后,在 Updatepanel 内控件的前端 js 失效问题
实际情况:点击下箭头弹出列表,点击列表上的隐藏按钮隐藏列表. 背景:模块没有使用Js或者Jquery的Ajax功能,而是使用Asp.Net的Ajax控件--UpdatePanel + ScriptMa ...
- Transact-SQL解析和基本的实用语句
SQL语言 DDL(数据定义语句) DML(数据操作语句) DCL(数据控制语句) DDL 数据定义 操作对象 操作方式 创建 删除 修改 模式 CREATE SCHEMA DROP SCHEMA 表 ...
- Java-this
当方法中的参数和类中变量重名时,使用 this.变量 调用成员变量. public class test1 { String name; int age; public void te(String ...
- DNS到底是干什么用的
DNS,DomainNameSystem或者DomainNameService(域名系统或者余名服务).域名系统为Internet上的主机分配域名地址和IP地址.用户使用域名地址,该系统就会自动把域名 ...
- 快速掌握JavaScript面试基础知识(二)
译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...
- bat文件传递参数
%*是表示命令行传过来的参数,%1表示第一个参数,%2表示第二个参数,以此类推.如执行C:/>hello.bat hello world, %1取出来就是hello %2取出来就是world h ...
- angular ng-repeat 动态获取的dom片段 显示
.filter('to_trusted', ['$sce',function ($sce) { return function (text) { return $sce.trustAsHtml(tex ...
- vue从入门到进阶:组件Component详解(六)
一.什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功 ...
- HDU 1527 取石子游戏(威佐夫博弈)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
- BZOJ3687: 简单题(dp+bitset)
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1138 Solved: 556[Submit][Status][Discuss] Descripti ...