我们一起聊聊MySQL 索引的底层逻辑
11其乐融融 发布于 2024/01/09 01:33:13
本文以 MySQL 数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是, MySQL 支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此 MySQL 数据库支持多种索引类型,如 B-Tree 索引,哈希索引,全文索引等等。为了避免混乱,将只关注于 B-Tree 索引,因为这是平常使用 MySQL 时主要打交道的索引。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/09 01:33:13
本文以 MySQL 数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是, MySQL 支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此 MySQL 数据库支持多种索引类型,如 B-Tree 索引,哈希索引,全文索引等等。为了避免混乱,将只关注于 B-Tree 索引,因为这是平常使用 MySQL 时主要打交道的索引。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:42
语句是否能够执行主要看的优先级矩阵和兼容矩阵,前者用于判断本次执行的语句和堵塞中的MDL LOCK谁的优先级更高,优先级更高则可以继续判断兼容矩阵。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:39
本文介绍如何使用Python进行MySQL数据库编程,包括连接数据库、执行SQL查询、插入、更新和删除数据等操作。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:36
我们在设置写盘策略的时候 innodb_flush_log_at_trx_commit 设置为1,在每次事务提交的时候都会直接将缓存在redo log buffer中的redo log直接持久化到磁盘中。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:33
第一次遇到这种问题,仅此记录。问题主要是一个mysqldump导出也就100来M的文件,导入居然要几个小时,更换多个实例后都很慢。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:31
本文主要以hash scan全表为基础进行分析,而不涉及到hash scan索引,实际上都会遇到这个问题。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:28
MySQL 主从复制用于多个数据库服务器之间的数据同步,它可以提供高可用性、提高数据库整体性能和吞吐量,以及可以进行数据备份和数据库恢复。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:26
意向锁并不能直接由开发者创建和使用,它是存在于 MySQL 中,由 MySQL 自行维护的一种协调事务加锁的机制。它在事务创建行锁和表锁时创建,在事务提交或回滚之后自动释放。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:23
最近在处理一个主从问题的时候,发现一个比较奇怪的现象,这里我们简单探讨一下,未考虑清楚的地方还请见谅。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:22
MySQL 中有行格式有三种存储方式,包括 Server 层的格式、索引元组格式(逻辑记录,tuple)、物理存储记录格式(record)。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:33:14
不管是页分裂还是页合并,InnoDB都会在索引树上加写锁(x-latch)。在操作频繁的系统中这会是在隐患,可能会导致索引的锁竞争(index latch contention)。如果表中没有合并和分裂操作(也就是写操作),称之为“乐观(optimistic)”更新,只需要使用读锁(S)。带有合并或者分裂的操作称之为“悲观(pessimistic)”更新,使用写锁(X)。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:26:28
在数据库操作和SQL查询的开发过程中,有时候我们为了动态生成查询、进行权限控制、进行查询优化或者其他一些与数据库交互相关、数据库监控等的需求,需要从SQL语句中提取表名。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:26:26
ODBC 和 JDBC 都提供了一种通用的方式来访问数据库,允许开发人员使用标准 SQL 语句来操作各种不同类型的数据库。ADO.NET则是微软针对 .NET 平台开发的数据库访问接口,提供了与 ODBC 类似的功能,但更加面向对象,具有更好的性能和可扩展性。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:26:23
本文的主要内容是一个实战示例,演示如何实时读取SQL Server数据库表,并将数据写入Excel文件。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:26:21
执行该计划并返回结果。这一阶段包括访问表中的必要数据、执行任何过滤或条件语句、执行 SQL 语句中指定的 join、聚合和排序操作。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/01/08 01:26:12
我相信你听说过SQL,甚至已经掌握了它。SQL(结构化查询语言)是一种广泛用于处理数据库数据的声明性语言。
阅读()评论(0)赞 ()
其乐融融 发布于 2023/12/27 01:33:04
• 同一事务的多个实例在并发读取数据时,会看到同样的数据行(MySQL的默认事务隔离级别)。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC)机制解决了不可重复读问题,存在幻读问题。
阅读()评论(0)赞 ()
其乐融融 发布于 2023/12/27 01:22:46
Cprobe 是一个探针采集器,支持常见数据库、中间件的采集,比如 MySQL、Redis、MongoDB、Oracle、Kafka、ElasticSearch 等。
阅读()评论(0)赞 ()
其乐融融 发布于 2023/12/26 01:33:10
在普通的 insert 语句里面包含多个 value 值的情况下,即使 innodb_autoinc_lock_mode 设置为 1,也不会等语句执行完成才释放锁。因为这类语句在申请自增 id 的时候,是可以精确计算出需要多少个 id 的,然后一次性申请,申请完成后锁就可以释放了。
阅读()评论(0)赞 ()
其乐融融 发布于 2023/12/26 01:33:08
MySQL报错“too many connections”的原因可能有哪些呢?一起来看一下。
阅读()评论(0)赞 ()
其乐融融 发布于 2023/12/20 01:33:19
本文分享十个重要的MySQL方法技巧,带读者深入了解如何优化查询、使用存储过程和触发器、创建视图以及其他实用技巧。这些技巧会对读者的MySQL开发之旅产生积极的影响。
阅读()评论(0)赞 ()
其乐融融 发布于 2023/12/20 01:33:10
MySQL Shell的数据恢复操作有很多可选参数便于灵活操作,大家可以自己实操实验一下。也可以通过修改并发参数来对比其他逻辑备份工具的效率。
阅读()评论(0)赞 ()
其乐融融 发布于 2023/12/19 01:33:21
本文从一个日常开发场景出发,提出两个关键问题:代码过于繁琐,容易出错,同时开发效率低下;对性能设计关注不足,容易遗漏,产生性能问题;对于性能问题,从 MySQL B+Tree 进行推演,总结出该场景下的最佳使用实践,并将其提取为规范。
阅读()评论(0)赞 ()
其乐融融 发布于 2023/12/19 01:26:18
为什么开发人员和数据库管理员(DBA)用来组织数据的语言如此混乱?下面是我们希望开发者放弃SQL的九个原因,尽管我们可能不会这么做。
阅读()评论(0)赞 ()
其乐融融 发布于 2023/12/15 01:26:10
分布式 SQL 数据库会将应用程序数据存储在多个节点上,从存储和计算的角度提高了可扩展性。这种分布意味着某些应用程序请求,包括 JOIN 操作和聚合,可能跨多个数据库节点,可能导致数据在网络中的传输。
阅读()评论(0)赞 ()