赞
踩
简单来说,就是目录,其目的就是为了提高查询的效率,快速定位
但会消耗小部分空间,降低增删改的效率
create index 索引名 on 表名/列名 ;
注意:
1.主键自带一个索引
2.表中数据较多时可能会卡死数据库
show index from 表名;
drop index 索引名 on 表名;
漏!哈希表虽然速度快,但只能查询值相等的情况 ,当进行比较大小的范围查询则不支持
也漏!数据库数据特别多时,树的高度会异常的高(logN),不太合适
也不完美
B树也是一个N叉搜索树,每个节点包含N-1个值,也可能更少
N-1个值,就把区间分为N个
B树的值不能重复出现
这样做,比二叉树高度减小,IO次数降低
N个值分为N个区间
B+树的值可以重复出现
观察叶子节点:12 —> 345 —> 678 —> 9 10 11 —> 12 13 14 15
正因为叶子节点是全集数据,只需要把所有的叶子节点,以链表形式首尾相连,方便范围查找
此时,非叶子节点只需要保存索引即可,在内存中缓存,来减少硬盘IO
原子性:一系列不能分割的事(要么全部成功,要么全部失败)
事务就是维持原子性的一组操作
事务的回滚(rollback):在事务的执行过程中,MySQL会保存每一步执行记录,一旦出现问题就可以根据记录来回滚
(1).开启事务
start transaction;
(2).执行多条SQL语句
(3).回滚或提交:rollback/commit
原子性:事务的根本,事务执行中,进行一系列不可分割的操作
一致性:事务执行前后,数据处在“一致”的状态
持久性:事务的改动,都是写在硬盘里,不会随着程序重启/主机重启而丢失
隔离性:多个事务并发执行的时候,事务之间能够保持“隔离”,不互相干扰
类似考试的时候,有人故意写错误答案给别人抄,后面他又偷偷改了。
可以对写操作加锁,
加锁前,并发性高,隔离性低;加锁后,隔离性高,并发性低
平衡效率和准确性
从上到下,准确性提高,效率降低
1.read uncommitted
2.read committed
3.repeatable read
4.serializable
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。