栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

MySQL——简述索引与事务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL——简述索引与事务

一,什么是索引

简单来说,就是目录,其目的就是为了提高查询的效率,快速定位

但会消耗小部分空间,降低增删改的效率

二,如何使用索引 1.创建索引

create index 索引名 on 表名/列名 ;

 

注意:

1.主键自带一个索引 

2.表中数据较多时可能会卡死数据库

2.显示索引

show index from 表名;

 3.删除索引

drop index 索引名 on 表名;

三,索引背后的数据结构是啥样的 1.哈希表?

漏!哈希表虽然速度快,但只能查询值相等的情况 ,当进行比较大小的范围查询则不支持

2.二叉搜索树?

也漏!数据库数据特别多时,树的高度会异常的高(logN),不太合适

3.B树?

也不完美

B树也是一个N叉搜索树,每个节点包含N-1个值,也可能更少

N-1个值,就把区间分为N个

B树的值不能重复出现

这样做,比二叉树高度减小,IO次数降低

 4.B+树!

N个值分为N个区间

B+树的值可以重复出现

 观察叶子节点:12 —> 345 —> 678 —>  9 10 11 —> 12 13 14 15 

正因为叶子节点是全集数据,只需要把所有的叶子节点,以链表形式首尾相连,方便范围查找

此时,非叶子节点只需要保存索引即可,在内存中缓存,来减少硬盘IO

三,事务 1.什么是事务

原子性:一系列不能分割的事(要么全部成功,要么全部失败)

事务就是维持原子性的一组操作

事务的回滚(rollback):在事务的执行过程中,MySQL会保存每一步执行记录,一旦出现问题就可以根据记录来回滚

2.事务的使用

(1).开启事务

start transaction;

(2).执行多条SQL语句

(3).回滚或提交:rollback/commit

3.事务的特性

原子性:事务的根本,事务执行中,进行一系列不可分割的操作

一致性:事务执行前后,数据处在“一致”的状态

持久性:事务的改动,都是写在硬盘里,不会随着程序重启/主机重启而丢失

隔离性:多个事务并发执行的时候,事务之间能够保持“隔离”,不互相干扰

4.如何解决事务的脏读问题

  类似考试的时候,有人故意写错误答案给别人抄,后面他又偷偷改了。

可以对写操作加锁,

加锁前,并发性高,隔离性低;加锁后,隔离性高,并发性低

5.隔离级别的四种档位

平衡效率和准确性

从上到下,准确性提高,效率降低

1.read uncommitted   

2.read committed 

3.repeatable read

4.serializable 

 

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1036535.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号