1.什么是存储过程?有哪些优缺点
答:存储过程是一些预编译的SQL语句。它是由一些T-SQL语句组成的代码快,这些SQL语句就像是一个方法一样实现一些功能,例如对单表或者多表的增删改查,然后给这个代码块取一个名字,再用到的时候调用它就行了。
- 存储过程是一个预编译的代码块,执行效率比较高。
- 一个存储过程代替大量的SQL语句,可以降低网络通信量,提高通信速率
- 可以再一定程度上保证数据安全
2.索引是什么?有什么作用及其优缺点?
答:索引是对数据库表中一或多个列的值进行排序的结构,是帮助MySQL高效获取数据的数据结构。也可以理解为索引就算加快索引表中数据的方法,数据库索引类似于书籍的索引。在数据库中,索引允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。
MySQL数据库中几个基本的索引类型:普通索引、唯一索引、主键索引、全文索引。
- 索引加快数据库的检索速度
- 索引降低了插入、删除、修改等维护任务的速度
- 唯一索引可以确保每一行数据的唯一性
- 通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能
- 索引需要占物理和数据空间
以下设置了索引无法使用:
- 以%开头的like语句,模糊匹配
- or语句前后都没有同时使用索引
- 数据类型出现隐式转换
3.JDBC连接
- 加载驱动类,注册驱动
- 通过DrivrManager获取数据库连接
- 通过connection创建statement
- 通过statement执行sql语句,返回结果集
- 操作resultSet结果集
- 回收数据库资源,晚声明的先关闭
4.储存过程
答:储存过程是一组为了完成特定功能的sql语句集,经编译后储存在数据库中,用户通过制定储存过程的名字给定参数来执行。
优点:
- 储存过程可以用流控制语言编写,可以完成复杂的判断和运算,灵活性好;
- 储存过程被创建后,可以程序中多次调用,而不必重新编写该储存过程的sql语句;
- 储存过程能实现比较块的执行速度;
- 储存过程减少网络流量
- 储存过程可以被用作一种安全机制来充分利用
5.sql优化
1.用exists代替in
2、尽量避免在索引列上使用计算
3、避免在索引列上使用is null和is not null
4、当只要一行数据时使用limit1
5、为搜索字段建立索引
6、避免select *
7、尽可能使用not null
8、数据区分度不大的字段不宜使用索引
9、把计算放到业务层而不是数据库层
6.数据库事务的隔离级别
-
可读取未确认
写事务阻止其他事务,避免更新遗失,没有其他阻止读事务(存在脏读问题,就是另一个事务还没有提交最终数据,这个读事务读取了中途数据)</