MySQL
文章平均质量分 91
mysql高级特效
Java-阿旭
一个从业Java开发的技术爱好者,记录工作中用到的新技术、遇到的难点,记录学习新技能的总结和心得。关注我,不迷路,不定时分享干货满满!
展开
-
MySQL高级-索引失效的几种情况
在查询过滤条件中,OR的前面或者后面的列不是所有,那么导致整个where过滤条件的所有索引失效。OR的前面和后面的列必须是索引列,才能生效。在MySQL数据库中,联合索引遵守最左前缀原则,联合索引中,在进行数据检索时从索引的最左端开始匹配。联合索引有多个列,对于多列索引,在进行查询的时候,过滤条件的索引进行计算或者函数时,会导致索引失效。查询的过滤条件中,过滤条件的字段出现不等于,会使索引失效。当一张数据很多,索引列的null值比较少,有值的比较多,当一张数据很多,索引列的null值比较多,有值的比较少,原创 2022-12-13 22:24:23 · 1450 阅读 · 0 评论 -
MySQL高级-索引的使用和设计原则
MySQL的从分类角度来看,包含:普通索引、唯一索引、主键索引、全文索引等。原创 2022-12-01 08:57:27 · 469 阅读 · 0 评论 -
MySQL高级-常见索引(聚簇索引/非聚簇索引/联合索引)
在学习索引的创建和如何使用索引之前,我们先来了解索引的基本概念。如常见的索引有哪些?InnoDB中B+树有哪些需要注意的?B+和和B树的区别?原创 2022-11-28 20:01:04 · 1521 阅读 · 0 评论 -
MySQL高级-索引的数据结构
索引一、索引的引入1. 什么是索引2. 为什么使用索引3. 索引的优缺点3.1优点3.2 缺点二、索引的演进过程1. 索引的设计2. 简化的页和记录3.建立目录项4. 建立目录项的记录页5. 建立目录项记录页的目录页一、索引的引入1. 什么是索引索引是数据库存储引擎用来快速查找定位到数据的一种数据结构,索引是再存储引擎中实现的。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。有些存储引擎支持更多的索引数和更大的索引长度。MySQL在查找数据的时候,首先会检测查询的条件是否有索引,如果原创 2022-11-27 10:20:26 · 111 阅读 · 0 评论 -
MySQL高级-多版本并发控制(MVCC)
全称:Multi-Version Concurrency Control,多版本并发控制,是数据库通过控制数据行的历史版本,来控制并发场景下的一种手段。即使不需要加锁,也能控制并发情况下读写的冲突。做到即使在由读写冲突的情况下,也不用加锁,进行非阻塞并发读。MVCC中的读是快照读,而不是当前读,快照读其实是乐观锁思想的一种,而当前读用的是悲观锁的思想。在MySQL数据库中,默认的隔离级别是可重复读,该隔离级别下,是可以解决脏读和不可重复读的问题,但是解决不了幻读的问题。在隔离级别中,串行化。原创 2022-11-25 17:42:46 · 350 阅读 · 2 评论 -
MySQL高级-数据库锁
锁,其实就是一个内存种的结构,在事务还没有来之前是没有锁存在的。在事务未开始前只有一条记录,是没有锁和记录之间的关联关系的。锁结构种有很多的信息,主要的有两个:trx信息:代表这个锁结构是哪个事务生成的。is_waiting:代表当前事务是否在等待。当一条事务想要对某条记录进行改动时,就会生成一把锁,在生成锁的时候,会去检查该条记录有没有被其他的锁关联。① 如果没有,is_wating就是false,不需要等待,此时表示事务上锁成功,可以进行后续操作;② 如果有其他事务上锁,则。原创 2022-11-24 17:27:01 · 273 阅读 · 0 评论 -
MySQL高级-数据库事务
简单来说,事务就是一组逻辑的操作单元,多个操作(增删改查)在一起完成的事情就是事务。对事务来说,所有的事务来说,事务要么提交(commit),数据进行永久的保存下来,要么就事务,回滚(rollback)到事务前的状态。原创 2022-11-23 17:26:54 · 280 阅读 · 0 评论