文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】6.5-锁问题、阻塞、死锁、锁升级

1.锁问题 通过锁定机制可以实现事务的隔离性要求,使得事务可以并发地工作。锁提高了并发,但是却会带来潜在的问题。不过好在因为事务隔离性的要求,锁只会带来三种问题,如果可以防止这三种情况的发生,那将不会产生并发异常。 1.1 脏读 在理解脏读(Dirty Read)之前,需要理解脏数据的概念。但是脏数据和之前所介绍的脏页完全是两种不同的概念。脏页指的是在缓冲池中已经被修改的...

【MySQL技术内幕】6.5-锁问题、阻塞、死锁、锁升级
文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】6.4-锁的算法

1、行锁的3种算法 InnoDB存储引擎有3种行锁的算法,其分别是 Record Lock:单个行记录上的锁 Gap Lock:间隙锁,锁定一个范围,但不包含记录本身 Next-Key Lock:Gap Lock+ Record Lock,锁定一个范围,并且锁定记录本身 Record Lock总是会去锁住索引记录,如果 InnoD...

【MySQL技术内幕】6.4-锁的算法

云数据库 RDS家族介绍和最佳实践

1 课时 |
385 人已学 |
免费

云数据库RDS PostgreSQL版基础介绍

1 课时 |
322 人已学 |
免费

Analytic DB MySql产品介绍

1 课时 |
21 人已学 |
免费
开发者课程背景图
文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】6.3-InnoDB中的锁

1.锁的类型 InnoDB存储引擎实现了如下两种标准的行级锁: 共享锁( S Lock),允许事务读一行数据。 排他锁( X LocK),允许事务删除或更新一行数据。 如果一个事务T1已经获得了行r的共享锁,那么另外的事务T2可以立即获得行r的共享锁,因为读取并没有改变行r的数据,称这种情况为锁兼容( Lock Compatible)。 ...

【MySQL技术内幕】6.3-InnoDB中的锁
文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】6.1-锁、lock和latch

1.锁 锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。 InnoDB存储引擎会在行级别上对表数据上锁,这固然不错。不过 InnoDB存储引擎也会在数据库内部其他多个地方使用锁,从而允许对多种不同资源提供并发访问。例如,操作缓冲池中的LRU列表,删除、添加、移动LRU列表中的元素,为了保证一致性,必须有锁的介入。数据库系统使用锁是为了支持对共享资源进行并发...

【MySQL技术内幕】6.1-锁、lock和latch
文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】5.8-全文检索

1、概述 全文检索( Full-Text Search)是将存储于数据库中的整本书或整篇文章中的任意内容信息查找出来的技术。它可以根据需要获得全文中有关章、节、段、句、词等信息,也可以进行各种统计和分析。 在之前的 MySQL数据库中, InnoDB存储引擎并不支持全文检索技术。大多数的用户转向 MyISAM存储引擎,这可能需要进行表的拆分,并将需要进行全文检索的数据存储为 My...

【MySQL技术内幕】5.8-全文检索
文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】5.7- InnoDB存储引擎中的哈希算法

InnodB存储引擎使用哈希算法来对字典进行查找,其冲突机制采用链表方式,哈希函数采用除法散列方式。对于缓冲池页的哈希表来说,在缓冲池中的Page页都有争chain指针,它指向相同哈希函数值的页。而对于除法散列,m的取值为略大于2倍的缓冲池页数量的质数。例如:当前参数 innodb buffer pool size的大小为10M,则共有640个16KB的页。对于缓冲池页内存的哈希表来说,需要分配....

【MySQL技术内幕】5.7- InnoDB存储引擎中的哈希算法
文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】5.6-B+树索引的使用

1、不同应用中B+树索引的使用 在了解了B+树索引的本质和实现后,下一个需要考虑的问题是怎样正确地使用B+树索引,这不是一个简单的问题。这里所总结的可能并不适用于所有的应用场合。我所能做的只是概括一个大概的方向。在实际的生产环境使用中,每个DBA和开发人员,还是需要根据自己的具体生产环境来使用索引,并观察索引使用的情况,判断是否需要添加索引。不要盲从任何人给你的经验意见, Think d...

【MySQL技术内幕】5.6-B+树索引的使用
文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】5.5-Cardinality值

1、什么是 Cardinality 并不是在所有的查询条件中出现的列都需要添加索引。对于什么时候添加B+树索引,一般的经验是,在访问表中很少一部分时使用B+树索引才有意义。对于性别字段地区字段、类型字段,它们可取值的范围很小,称为低选择性。如: SELECT FROM stud...

【MySQL技术内幕】5.5-Cardinality值
文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】5.4-B+树索引

1.聚集索引 Innodb中每张表都会有一个聚集索引,其行记录存在该索引的叶子节点上。 叶子节点通过双向链表链接,按照主键的顺序排序 页中的记录也是双向链表进行维护,物理上可以不按照顺序存储。 所有索引只能定位到页,不能通过索引定位到具体的行,到页后通过Page Directory确定行。 聚集索引的另一个好处是,它对于主键的排...

【MySQL技术内幕】5.4-B+树索引
文章 2024-06-13 来自:开发者社区

【MySQL技术内幕】4.8-分区表

1、分区概述 分区功能并不是在存储引擎层完成的,因此不是只有 InnoDB存储引擎支持分区,常见的存储引擎 MyISAM、NDB等都支持。但也并不是所有的存储引擎都支持,如CSV、 FEDORATED、 MERGE等就不支持。在使用分区功能前,应该对选择的存储引擎对分区的支持有所了解。 MySQL数据库在51版本时添加了对分区的支持。分区的过程是将一个表或索引分解为多个更小、更可...

【MySQL技术内幕】4.8-分区表

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

阿里云数据库

让用户数据永远在线,让数据无缝的自由流动

+关注
相关镜像