真正线上索引失效的问题是如何排查的
高手回答 MySQL索引失效是一种常见问题,在处理慢查询时经常需要考虑索引失效的可能性。 针对索引失效的排查,关键步骤包括确定需要分析的SQL语句,并通过EXPLAIN查看其执行计划。主要关注...
高手回答 MySQL索引失效是一种常见问题,在处理慢查询时经常需要考虑索引失效的可能性。 针对索引失效的排查,关键步骤包括确定需要分析的SQL语句,并通过EXPLAIN查看其执行计划。主要关注...
MYSQL 一个事务在提交的时候能够保证binlog和redo log是同时提交的,并且能在宕机恢复后保持binlog 和redo log的一致性。 先来看看什么是redo log 和binlo...
下图是MySQL(MySQL5.7版本)体系架构图: MySQL的InnoDb Buffer Pool 缓冲池是主内存中的一个区域,用来缓存InnoDB在访问表和索引时的数据。对于频繁使用的...
引言 在日常业务系统开发中,我们尝尝有这样的一个需求:判断某个值在数据库中是否存在。常见的做法之一是使用COUNT(*)或者COUNT(1)函数,但是,在仅需判断记录是否存在而不关注具体数量的情...
困惑 最近遇到个问题,有个表的要加个user_id字段,user_id字段可能很大,于是我提mysql工单alter table xxx ADD user_id int(1),领导看到我的sql...
今天再聊一个 MySQL 和 Postgres 之间小小的不同,呆瓜模式的实现。 1.MySQL 的呆瓜模式 图片 MySQL 命令行工具提供了一个选项 --safe-update...
MySQL主从复制 MySQL主从复制是一种数据库复制技术,在主从复制中,一个数据库服务器(主节点,Master)充当主服务器,而其他一个或多个数据库服务器(从节点,Slave)充当从服务器。...
1 背景 最近组里来了许多新的小伙伴,大家在一起聊聊技术,有小兄弟提到了MySQL的优化器的内部策略,想起了之前在公司出现的一个线上问题,今天借着这个机会,在这里分享下过程和结论。排查的过程中,...
为什么需要引入锁 锁是计算机协调多个进程或线程并发访问某一资源的一种机制,在并发事务下保证数据的正确和唯一性。 图片 锁在 MySQL 中是非常重要的一部分,对 MySQL 的数据访问并发有...
构建MySQL Shell 8.0.32 for GreatSQL 0. 写在前面 最近再次编译MySQL Shell二进制包时,发现了一些新问题,因此重新整理更新本文档。 1....
经常进行数据分析的小伙伴经常会需要生成序号或进行数据分组排序并生成序号。在MySQL8.0中可以使用窗口函数来实现,可以参考历史文章有了这些函数,统计分析事半功倍进行了解。而MySQL5.7中...
查询分页一般要最少要执行两条 SQL 语句: SELECT COUNT(*) FROM tablename WHERE columnName = 'xx' SELECT * FROM tabl...
最近在网上看到一篇关于int(3)和int(11)区别的帖子,我第一反应这不就是它们之间主要涉及存储整型数据时所需的位数,即3位和11位的差异。然而,经过详细阅读文章并进行进一步的资料查询和测试后...
在Mysql数据库中,模糊搜索通常使用LIKE关键字。然而,随着数据量的不断增加,Mysql在处理模糊搜索时可能面临性能瓶颈。因此,引入Elasticsearch(ES)作为搜索引擎,以提高搜索性...
上周有个童鞋问我这个问题,系统性说一下。 一般来说,并发量大,吞吐量大的互联网分层架构是怎么样的? 数据库上层都有一个微服务,服务层记录“业务库”与“数据库实例配置”的映射关系,通过数据库连接...
MySQL作为一种关系型数据库管理系统,被广泛应用于各种规模的应用中。然而,在处理大量数据和高并发请求的情况下,MySQL的性能可能会受到限制。为了提高MySQL性能,合理设计缓存策略至关重要。...
数据处理是专业人士经常面对的问题,尤其是在大型数据集的情况下。有效总结和分析数据非常重要,能从数据中获取有价值的见解。SQL提供了一组强大的聚合函数,可以帮助数据科学家和数据分析师更好地处理和分析...
某DBA:like '%a%'肯定走不了索引的。。。 在MySQL数据库使用规范或优化建议中都明确说类似 like '%a%'的写法不走索引。那么,真的是在任何条件下这种写法都不能走索引么?...
1、参数作用 max_allowed_packet参数是指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小。如果超过了设置的最大长度,则会数据库保持数据失败。 2、...
在MySQL数据库管理系统中,存储过程和触发器是两个重要的概念,它们可以帮助开发人员提高数据库的性能、简化复杂的操作流程,并实现更高级的业务逻辑。 存储过程的作用与特点 存储过程的定义:存储过...
MySQL是一种常用的关系型数据库管理系统,广泛应用于各种规模的应用程序中。在MySQL中,临时表是一种特殊类型的表,它们仅在当前会话中存在,并在会话结束后自动删除。 临时表是一种临时存储数据的...
MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,确保查询结果的一致性和并发安全性。 概念解释 记录锁(Record Lock) 记录锁也被称为行锁,顾名思...
处理日期和时间数据是数据库管理中的常见任务,在SQL中提供了一套强大的工具来处理时间数据。了解日期和时间函数的细微差别对于准确的数据管理非常关键,从操作日期到处理时区,本文介绍在SQL中有效处理日...
在并发访问下,MySQL事务中的死锁问题是一种常见的情况。当多个事务同时请求和持有相互依赖的资源时,可能会出现死锁现象,导致事务无法继续执行,严重影响系统的性能和可用性。 死锁问题的原因分析...
在MySQL中,ZEROFILL是一种用于在数字字段上进行填充零的属性。该属性通常用于确保数字达到指定长度时,左侧用零进行填充。这在某些特定场景下非常有用,例如确保订单号或者其他标识符具有固定...
在现代应用中,数据库扮演着至关重要的角色,而MySQL作为一款广泛使用的关系型数据库管理系统,面对大量并发查询时的性能问题成为了一个挑战。除了使用临时表外,还有许多其他方法可以处理大量并发查询并提...
在 MySQL 中,JOIN 是一种用于联合多个表的操作,它通过匹配两个或多个表中的行来获取相关数据。除了常见的 INNER JOIN,MySQL 还支持其他几种类型的 JOIN 操作,包括 LE...
摘要 在当今高度并发的数据库环境中,有效的并发控制是至关重要的。MVCC是MySQL中被广泛采用的并发控制机制,它通过版本管理来实现事务的隔离性,允许读写操作同时进行,提高数据库的并发性能和...
背景 微服务项目中通常包含各种服务。其中一项服务与存储用户相关的数据有关。我们使用Spring Boot作为后端,使用MySQL数据库。 目标 随着用户基数的增长,服务性能受到了影响,延迟也...
MySQL报错“too many connections”通常是由于数据库的最大连接数超过了MySQL配置的最大限制。这可能是由于数据库的并发连接过多,或者存在一些连接没有被正确关闭。这里给出...
一、案例描述 最近遇到这么一个案例(5.7版本),大概的截图如下: 当然这里是测试出来的,线上当时也是一个lock table read的语句和一大批insert into的语句被堵塞,当...
数据结构以及算法 索引的本质其实就是一种数据结构。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找,这种复杂度为 O(n)...
这个问题相对简单,但是第一次遇到这种问题,仅此记录。问题主要是一个mysqldump导出也就100来M的文件,导入居然要几个小时,更换多个实例后都很慢,文件大小如下: 当然这种可以重现的问题...
今天的文章内容围绕一位网友的评论去展开,在看完小许文章【结合MySQL更新流程看 undolog、redolog、binlog】,他提出了这么一个问题,如下: 图片 换个方式提取出他想问的:可...
MySQL 主从复制(Master-Slave Replication)是一种数据复制技术,用于在多个数据库服务器之间的数据同步。在主从复制架构中,一个服务器被设置为主服务器(Master),充当...
最近受废话文学的影响,所以有了今天的这个标题,希望大家能喜欢。大家不喜欢也没关系,反正我喜欢。 鲁迅先生曾经说过“我家门前有两棵树,一棵是枣树,另一棵还是枣树。”,由此可见,这老爷子算是把废话文...
引言 本文在介绍 MySQL 内存中记录、页、索引、游标的数据结构的基础上,通过简单分析插入操作过程中行格式的转换介绍了不同数据结构的关系,其中不涉及加锁相关逻辑。 原理 记录 概念 I...
本文主要讨论的还是5.7,8.0没有实际测试,这里简单记录。 一、问题说明 最近在处理一个主从问题的时候,发现一个比较奇怪的现象,这个主从是级联的也就是A->B->C库,B库...
本文为摘录文章,如有错误,请指正。文章是以MySQL5.7版本进行说明,和现有版本可能会有一定差距,但是数据页的设计基本没有发生过变化,因此,可以作为学习参考。原文为2017年发表的一篇文章:《I...
从开始接触MySQL,我们就知道在设计主键时,要设置为自增主键,使用自增主键有以下几个优点: 效率高:使用自增主键可以避免频繁生成主键值的操作,节省了数据库的资源,提高了查询效率。 索...
MySQL是目前广泛使用的关系型数据库系统,随着数据量的不断增加和业务需求的提升,MySQL数据库性能优化已经成为开发人员和DBA必须面对的一个重要问题。 查询语句是MySQL数据库中最常用的操...
索引主要是用于提高数据检索速度的一种机制,通过索引数据库可以快速定位到目标数据的位置,而不需要遍历整个数据集,它就像书籍的目录部分,有它的存在,可以大大加速查询的效率。 那么问题来了:在创建...
MySQL的锁机制通过对数据进行加锁来防止数据冲突和不一致。具体来说,MySQL使用了两种类型的锁:共享锁(Shared Lock)和排他锁(Exclusive Lock)。 共享锁(Share...
MySQL是一种广泛使用的关系型数据库管理系统,在软件开发领域扮演着重要的角色。开发人员掌握MySQL方法技巧,将有助于简化工作流程,提升开发效率和成功率。 本文分享十个重要的MySQL方法技巧...
基于索引的单表查询,是 MySQL 正确打开方式! 基于 QueryObject 的声明式查询,是简单查询的正确使用方式! 1、应用场景 单表查询在业务开发中占比最大,是所有 CRUD...
上篇文章(转战MySQL Shell!数据库备份新姿势,轻松搞定备份操作!)简单介绍了使用MySQL Shell进行数据库备份,本文基于上文的备份进行数据恢复演示操作。 一、恢复单表 因为...
之前的文章我们提到过,主备数据库是通过binlog实现的数据同步: 主库在接到客户端更新请求时,执行内部事务的更新逻辑,同时写binlog。 r 1)edo log&n...
一、前言 在一个阳光明媚的下午,我们的测试在运行SQL时发现了一个灵异事件。别着急,等我慢慢说来,是一个查询库存的SQL,控制台打印了,查询为0条记录。想着不太信,自己把SQL粘出来执行一下...
背景 首先1992 年发表的SQL Standard 对隔离级别进行的定义是根据几个异象(Dirty Read, Non-Repeatable Read, Phantom Read) , 当...
从进入互联网时代开始,我们从单机走向集群再到当前的微服务架构,我们已经很少再使用单机架构来实现业务逻辑,即使没有使用微服务,但是主备、主从等集群已经属于是业务侧必备能力。 但是,无论是主备还是主...