事务是指作为一个基本工作单元执行一系列sql语句的操作,要么全部执行,要么都不执行。
- 原子性:一个事务是一个个不可分割的最小单位,对数据库的事务操作要么全部执行,要么全部不执行。
- 一致性:事务执行之前和之后都处在一致的状态。
- 隔离性:数据库为每一个用户开启事务,不能被其他事务干扰,多个并发事务之间相互隔离。
- 持久性:事务对数据库的修改操作一旦修改完成提交之后,数据将永久保存在数据库中。
存储过程是一个编程的过程,他在数据库中创建并保存。是一组特定的sql语句集和特殊的控制结构组成;当希望在不同的应用程序可以用的时候,可以将他们进行封装,然后用特定的名字和参数来调用他。
优点:
- 对数据库进行封装,可以重复使用,减少了开发人员的工作量;
- 只在创造的过程中进行编译,以后每次调用都不需要重新编译,提高了数据库的访问效率;
- 防止sql注入,提高安全性。
加索引
3.2 为什么加索引能优化慢查询?因为索引是一种优化查询的数据结构;比如mysql中用B+树实现索引,而B+树是一种数据结构,可以优化查询的速度,可以用索引快速查找数据,所以能优化查询。
3.3 提高查询速度的数据结构哈希表、平衡二叉树、B树、B+树
3.4 Mysql为何选择B+树作为索引而不选哈希表?- 哈希表是把索引映射成哈希码然后再存放到对应的位置,如果要进行模糊查询的话,显然哈希表是不支持的,只能遍历整张表。
- 如果进行范围查询,哈希表也是不支持的,只能遍历整张表;
- 索引字段通过哈希映射成哈希码,如果很多字段刚好映射到相同值的哈希码的话,形成的索引结构将会是一条很长的链表,增加了查找的时间。



