MySQL 核心模块揭秘,你看明白了吗?
0其乐融融 发布于 2024/03/28 01:33:09
为了提升分配 undo 段的效率,事务提交过程中,InnoDB 会缓存一些 undo 段。只要同时满足两个条件,insert undo 段或 update undo 段就能被缓存。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/28 01:33:09
为了提升分配 undo 段的效率,事务提交过程中,InnoDB 会缓存一些 undo 段。只要同时满足两个条件,insert undo 段或 update undo 段就能被缓存。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/27 01:33:04
对于5.7.23之前的版本在评估类似DDL操作的时候需要谨慎,可能评估为瞬间操作,但是实际上线的时候跑了很久,这个就容易导致超过维护窗口,甚至更大的故障。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/27 01:21:15
从技术分类来说Oracle、MySQL是数据库。Redis、MongoDB、influxdb、neo4j、Elasticsearch也是数据库。Hadoop技术栈也是数据库。区块链也是数据库。Impala、StarRocks等也是数据库。所以最终有问题都会涉及到我。本着这个思路我也尝试着进行一下安装。虽然也有容器化部署的方式,但是自己手工安装一遍收获是不一样的。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/26 01:33:16
当我们根据非聚簇索引查询的时候,会先通过非聚簇索引查到主键的值,之后,还需要再通过主键的值再进行一次查询才能得到我们要查询的数据。而这个过程就叫做回表。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/26 01:33:14
根据官方的解释可以了解到,如果有许多大的触发器,参数 table_open_cache_instances 的默认值可能会造成内存使用过多。比如 table_open_cache_instances 设置为 16,那么表缓存会划分为 16 个 table instance。当并发访问大时,最多的情况下一个表的缓存信息会出现在每一个 table instance 里面。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/26 01:33:13
本文将总结一些比较常见的运行比较慢但不会被记录在慢SQL日志里的情况。另外,慢SQL的计算方式在MySQL8.0新版本中有变化,因此,将通过对比MySQL5.7(MySQL5.7.38)与MySQL8.0(MySQL8.0.33)进行总结。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/26 01:33:11
Go语言,也称为Golang,是由Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/16 01:33:14
MySQL通常采用嵌套循环(Nested-Loop Join)的方法来执行关联查询,具体而言,主要包括简单嵌套循环连接(Simple Nested Loop Join)、块状嵌套循环连接(Block Nested Loop Join)和索引嵌套循环连接(Index Nested Loop Join)这三种算法。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/16 01:33:11
MySQL使用LRU(最近最少使用)算法来管理其InnoDB存储引擎的缓冲池(Buffer Pool),因为这种算法能有效地维护缓存页的使用频率和顺序。LRU算法通过淘汰长时间未被访问的数据页,确保缓冲池中存储的是最可能被再次访问的数据,从而提高数据检索的效率。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/16 01:21:05
巡检人员只需要执行脚本,脚本会自动生成一个完整的 Word 报告(样式格式都无需调整),只需要检查报告中是否存在问题即可。本文演示一套 19C RAC 的集群数据库自动巡检。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/15 01:33:07
借鉴两阶段提交的逻辑,我们可以将A服务的数据操作在业务设计上增加一个预扣减的概念,先锁定A服务数据资源,然后去请求B服务的接口,失败的话,则释放A服务锁定的数据资源,成功的话则进行真实的扣减。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/15 01:33:05
在现代互联网场景下,其实很少需要在一个事务中对同一行数据读取两次的情况,RR隔离级别实用性不高,而且因为加了间隙锁和Next-Key Lock,性能有所降低,死锁概率也相对较高。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/15 01:33:03
int后面的数字不能表示字段的长度,int(num)一般加上zerofill,才有效果。zerofill的作用一般可以用在一些编号相关的数字中,比如学生的编号 001 002 ... 999这种,如果mysql没有零填充的功能,但是你又要格式化输出等长的数字编号时,那么你只能自己处理了。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/13 01:33:09
当需要在MySQL中读取一个日期范围内的日期时,可以使用GENERATE_SERIES函数的方法。该方法通过子查询和交叉连接生成一个连续的数字序列,然后将其转换为日期序列。然后,你可以将生成的日期序列与其他表进行连接或者使用它们来进行其他操作。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/13 01:33:03
MySQL 命令行工具提供了一个选项 --safe-updates 或者 --i-am-a-dummy,默认是 false。开启之后如果 UPDATE, DELETE 不带 WHERE 或者 LIMIT 就会报错。此外 SELECT 语句也可以指定返回超过一定行数后报错。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/11 01:33:05
产生幻读的原因是,行锁只能锁住行,但是新插入记录这个动作,要更新的是记录之间的“间隙”。因此,为了解决幻读问题,InnoDB 只好引入新的锁,也就是间隙锁 (Gap Lock),间隙锁是在可重复读隔离级别下才会生效的。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/09 01:33:19
本文结合业务,寻求海量数据的解决方案。现有业务使用的是MySQL数据库,且数据量暂时可控,因此目前采用分库分表的策略。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/09 01:33:15
MYSQL中提供了一个函数select master_pos_wait(file, pos[, timeout]) 用于在slave上执行等待master节点上的位点同步完成,其中file,和pos是在master上的文件和位点,timeout 为了让master_pos_wait 函数在timeout秒内没有返回,则会直接触发超时返回。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/09 01:33:11
我们完成了在DailyMart中集成分库分表功能的实践,大家在实施分库分表过程中一定要结合自己的业务实际选择合理的分片键,分片键的好坏决定了你分库分表架构方案的好坏。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/08 01:21:16
基于GaussDB强大的可观测能力,目前故障模型的梳理工作也进展顺利,和一些其他的国产数据库不同的是,我们明显感到能够梳理出来的故障模型数量太多了,刚刚发布的时候可能就会有上百个故障模型,比我们2018年发布Oracle版本时的故障模式数量还要多出不少。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/07 01:33:03
这篇文章是基于工作实际中碰到的问题,把问题产生的原因和解决思路总结了下。文中针对提到的一些索引选择差异情况我们结合了解到的优化器执行策略,使用trace工具进行了验证。优化器有一套非常复杂的算法策略,本人对于MySQL的理解深度有限,这里就不详细分析了,还需要继续学习。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/06 01:26:15
我们在使用 SQL 语句实现分页查询时,需要知道一些额外的参数信息,例如查询返回的总行数、当前所在的页数、最后一页的页数等。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/05 01:33:16
在这个示例中,我将详细介绍如何使用Microsoft.Extensions.Logging将日志保存到MySQL数据库。我们将使用Entity Framework Core来与MySQL数据库进行交互。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/04 01:33:04
本文我们通过一系列示例进行测试,来看看到底是什么场景下锁表什么场景下锁行。
阅读()评论(0)赞 ()
其乐融融 发布于 2024/03/02 01:33:05
半同步复制,就是主节点执行写操作后,等待至少一个从节点确认收到数据后再返回给客户端,这就是半同步复制。
阅读()评论(0)赞 ()