![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 76
じ小奋斗_
这个作者很懒,什么都没留下…
展开
-
索引是建立得越多越好吗?
到这里有的人可能就有些疑问了。既然创建索引能够提高我们的查询效率,那索引是建立得越多越好吗?答案是否定的。物极必反,通过前面的学习我们对索引有了一个比较全面的理解。分为下面几个方面来回答。数据量小的表不需要建立索引,因为建立索引会增加额外的开销。(这就好比我们去读个两页的宣传手册,随还回去看目录呢)数据变更需要维护索引,因此更多的索引意味着更多的维护成本。更多的索引也意味着需要更多的空间(这就好比一本50页的书却有50页的目录,这样谁还愿意去读呢。那书本是不是更厚了)...原创 2022-06-06 17:42:45 · 1727 阅读 · 0 评论 -
联合索引的最左匹配原则的成因
上面我们只看的是单一的索引,接下来咱们来看看联合索引,也就是回答第二个问题。联合索引的最左匹配原则的成因。什么是联合索引呢,就是由多列组成的索引了。那亦要了解其成因,那先看看什么是最左匹配原则。假设我们有两列 A,B 那我们对A和B设置一个联合索引,就是将A和B都设置为索引。它的顺序呢是A,B。我们在where 语句中调用where A = ?and b = ? 的时候呢,它就会走联合索引。如果我么们要where A = ?它也会走这个联合索引,但是我们调 where b = ? 的时候,没有A的时候他就不原创 2022-06-06 17:41:05 · 1049 阅读 · 1 评论 -
锁模块之MyISAM与InooDB关于锁方面的区别
锁锁模块之MyISAM与InooDB关于锁方面的区别了解完关系型数据库和索引相关的知识点后,我们来讲讲锁。我们来看看锁方面的常见问题。MyISAM和InnoDB关于锁方面的区别是什么?数据库事务的四大特性事务隔离级别,以及各级别下的并发访问的问题InnoDB可重复读隔离级别下如何避免幻读RC,RR级别下的InnoDB的非阻塞读如何实现1.MyISAM和InnoDB关于锁方面的区别是什么下面来解答第一个问题,这里先给出答案。MyISAM默认使用的是表级锁,不支持行级锁。Inno原创 2022-01-12 17:25:34 · 253 阅读 · 0 评论 -
数据库索引
数据库索引接下来来到数据库知识的重点模块。索引模块 。1.为什么要使用索引?这个问题比较宽泛,要回答这个问题咋们先对查询数据的方式做个调研。我们先试试用最简单的方式来进行数据查询,他便是全表扫描,即将整张表的数据一次或者分批次加载到内存当中,刚刚我们说到存储的最小单位是块或者页它们是由多行数据来组成的,然后呢我们将这些块都加载进来然后逐个块去轮询找到我们要的目标并返回这种方式普遍是认为是非常的慢的,那它在所有的情况下都这么慢吗?其实上存在集合里他也有很适用的地方,比如说当一则很少量的数据十行或者几十行原创 2022-01-12 17:25:04 · 190 阅读 · 0 评论 -
数据库事务四大特性
数据库事务的四大特性作为单个逻辑单元执行的一系列操作,要么完全执行要么全部都不执行,咋们接下来讲讲数据库事务的四大特性。其实跟程序事务特性没啥区别,即所谓的ACIDA (Atomic)原子性 (原子性是指事务包含的所有操作,要么全部执行要么全部失败回滚)C (Consistency)一致性 (事务应确保数据库的状态,从一个一致的状态转变为另一个一致的状态,一致性的含义呢是指数据库中的数据呢应满足完整性约束,就拿转账来说,假设用户A和用户B两者的钱加起来一共是2000,那么不管A和B之间如何转账,转原创 2022-01-12 17:24:33 · 3577 阅读 · 0 评论 -
锁模块之当前读和快照读
锁模块之当前读和快照读InnoDB可重复读隔离级别下是如何避免幻读的。这里我们分为表象和内在表象:快照读(非阻塞读)——伪MVCC (前提是在RR级别下)内在:next-key 锁(行锁+gap锁)当前读和快照读当前读:select … lock in share mode,select … for update当前读2:update ,delete, insert其实当前读就是加了锁的增删改查语句,不管你上的是排他锁还是共享锁都是当前读。那为什么是当前读呢?原因是它读取了记录的最原创 2022-01-12 17:23:55 · 452 阅读 · 0 评论 -
密集索引和稀疏索引的区别
密集索引和稀疏索引的区别密集索引文件中的每个搜索码值都对应一个索引值(大家可以理解为叶子节点保存的不仅仅是键值,还保存了同一记录里的其他列的信息,由于密集索引决定了表的物理排列顺序,一个表只能有一个排列顺序,所以一个变只能创建一个密集索引。)稀疏索引文件只为索引码的某些值建立索引项(叶子节点仅保存了键位信息和该行数据的地址,有的稀疏索引只保存了键位信息以及主键,那么定位到叶子节点之后,仍然需要通过地址还有主键信息进一步定位到数据 )咋们来看看他们的图:上面都是对于一般数据库的情况,我们来对My原创 2021-09-20 12:52:12 · 805 阅读 · 0 评论