Java面试之数据库篇

1.什么是存储过程?有哪些优缺点
答:存储过程是一些预编译的SQL语句。它是由一些T-SQL语句组成的代码快,这些SQL语句就像是一个方法一样实现一些功能,例如对单表或者多表的增删改查,然后给这个代码块取一个名字,再用到的时候调用它就行了。

  • 存储过程是一个预编译的代码块,执行效率比较高。
  • 一个存储过程代替大量的SQL语句,可以降低网络通信量,提高通信速率
  • 可以再一定程度上保证数据安全

2.索引是什么?有什么作用及其优缺点?
答:索引是对数据库表中一或多个列的值进行排序的结构,是帮助MySQL高效获取数据的数据结构。也可以理解为索引就算加快索引表中数据的方法,数据库索引类似于书籍的索引。在数据库中,索引允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。
MySQL数据库中几个基本的索引类型:普通索引、唯一索引、主键索引、全文索引。
- 索引加快数据库的检索速度
- 索引降低了插入、删除、修改等维护任务的速度
- 唯一索引可以确保每一行数据的唯一性
- 通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能
- 索引需要占物理和数据空间
以下设置了索引无法使用:
- 以%开头的like语句,模糊匹配
- or语句前后都没有同时使用索引
- 数据类型出现隐式转换

3.JDBC连接

  1. 加载驱动类,注册驱动
  2. 通过DrivrManager获取数据库连接
  3. 通过connection创建statement
  4. 通过statement执行sql语句,返回结果集
  5. 操作resultSet结果集
  6. 回收数据库资源,晚声明的先关闭

4.储存过程
答:储存过程是一组为了完成特定功能的sql语句集,经编译后储存在数据库中,用户通过制定储存过程的名字给定参数来执行。
优点:

  1. 储存过程可以用流控制语言编写,可以完成复杂的判断和运算,灵活性好;
  2. 储存过程被创建后,可以程序中多次调用,而不必重新编写该储存过程的sql语句;
  3. 储存过程能实现比较块的执行速度;
  4. 储存过程减少网络流量
  5. 储存过程可以被用作一种安全机制来充分利用

5.sql优化
1.用exists代替in
2、尽量避免在索引列上使用计算
3、避免在索引列上使用is null和is not null
4、当只要一行数据时使用limit1
5、为搜索字段建立索引
6、避免select *
7、尽可能使用not null
8、数据区分度不大的字段不宜使用索引
9、把计算放到业务层而不是数据库层

6.数据库事务的隔离级别

  1. 可读取未确认
    写事务阻止其他事务,避免更新遗失,没有其他阻止读事务(存在脏读问题,就是另一个事务还没有提交最终数据,这个读事务读取了中途数据)</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值