数据库 20 / 255 题
索引的注意点
索引虽然是sql性能优化的利器,但是索引的维护也是需要成本的,所以创建索引,也要注意:索引应该建在查询应用频繁的字段。在用于where判断、order排序和join的(on)字段上创建索引。索引的个数应该适量。索引需要占用空间;更新时...
索引失效
违反最左前缀匹配原则(复合索引失效)场景:复合索引 (a, b, c),查询条件为 WHERE b=1 AND c=2 或 WHERE c=2。原理:B+Tree索引按定义顺序构建,缺失最左列无法定位索引树入口。解决:...
锁的分类
MySQL中的锁机制包括:1、表级锁: 锁定整个表,实现简单,开销小,但并发能力弱。2、行级锁: 锁定单独的行,开销大,但并发能力强。3、页面锁: 锁定相邻的一组行,是表级锁和行级锁的折中。4、意向锁:...
mysql死锁干预与优化
干预查看死锁日志:SHOW ENGINE INNODB STATUS; -- 分析LATEST DETECTED DEADLOCK部分[9,10](@ref) 终止事务阻塞KILL <事务ID>; --...
mysql死锁
MySQL死锁是数据库高并发场景下的常见问题,指两个或多个事务因争夺资源而互相等待,导致所有事务均无法推进的现象。事务A持有资源1并请求资源2,事务B持有资源2并请求资源1,形成循环等待链,双方均阻塞。满足四个必要条件:互斥、请求与保...
mysql锁-innodb锁
记录锁(Record Lock)锁定索引记录(如 WHERE id=1),防止其他事务修改目标行。间隙锁(Gap Lock)作用:锁定索引区间(如 id BETWEEN 5 AND...
mysql锁机制-按颗粒度
表级锁(Table-Level Lock)特点:锁定整张表,开销小、加锁快,不会死锁,但并发度低。适用场景:全表操作(如 ALTER TABLE、批量导入数据)。MyISAM 引擎默认锁(读锁兼容,写锁独占)。LOCK TABLES...
什么是脏读
脏读(Dirty...
修改丢失(Lost of modify)
是指一个事务读取一个数据时,另外一个数据也访问了该数据,那么在第一个事务修改了这个数据之 后,第二个事务也修改了这个数据。这样第一个事务内的修改结果就被丢失,这种情况就被称为修改丢 失
不可重复读
不可重复读(Unrepeatableread)指在一个事务内多次读取同一数据,在这个事务还没结束时,另外一个事务也访问了这个数据并对这个数据进行了修改,那么就可能造成第一个事务两次读取的数据不一致,这种情况就被称为*不可重复读。
什么是幻读?
幻读(Phantom read)...
隔离级别
隔离级别从低到高,解决不同并发问题:读已提交(RC)原理:通过 MVCC(多版本并发控制)读取最新已提交的快照。性能:并发度高,适合多数业务场景(如电商订单)。可重复读(RR)原理:事务启动时创建数据快照,全程基于此版本读取;通过...
ACID
原子性(Atomicity)事务中的操作要么全部成功,要么全部失败回滚(例如转账:扣款和加款必须同时生效或取消)。实现方式:通过 undo log...
MySQL中的索引的优缺点和类型
索引的优点 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。索引的缺点 时间方面:创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和...
空间索引(R-Tree)
适用场景:地理坐标查询(GIS系统)。核心原理:R-Tree结构分层管理空间范围,快速定位重叠区域-- 需空间数据类型(POINT, GEOMETRY) ALTER TABLE places ADD SPATIAL INDEX...
全文索引
适用场景:文本模糊搜索(MATCH ... AGAINST)。核心原理:倒排索引:分词后建立“词→文档ID”映射。性能优化:替代低效的LIKE '%keyword%',避免全表扫描。-- 需使用 InnoDB/MyISAM 引擎...
哈希索引
适用场景:等值查询(=),内存表(MEMORY引擎)。核心原理:哈希函数将键值映射到桶地址,桶内链表解决哈希冲突。性能特征:O(1)时间复杂度:等值查询极快。局限:不支持范围查询、排序、模糊匹配(LIKE)。CREATE TABLE...
B+Tree索引(默认索引类型)
适用场景:等值查询、范围查询(>/</BETWEEN)、排序(ORDER...
Mysql 常见索引
MySQL中常见的索引类型包括:1、B-Tree索引: 适用于全值匹配、匹配列前缀、匹配范围值、精确匹配和ORDER BY操作。2、哈希索引: 适用于等值查询,但不支持范围查询。3、全文索引:...
mysql索引是什么
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它 们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,...