- 2024-11-17阿里面试:1000万级大表, 如何 加索引?
本文原文链接文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完
- 2024-11-06MySQL核心业务大表归档过程
记录一下2年前的MySQL大表的归档,当时刚到公司,发现MySQL的业务核心库,超过亿条的有7张表,最大的表有9亿多条,有37张表超过5百万条,部分表行数如下: 在测试的MySQL环境 : pt-archiver工具,测试200的dev实例,5800万条数据,纯删除1000万条数据,花费
- 2024-10-17mysql慢sql优化思路
开启慢sql查询配置,或使用云服务厂商的慢sql统计,找到慢sql看下是不是使用了select*,如果是的话,改为查找字段,因为这样可以避免优化器去解析字段,单次查询可能效果不明显,但是一旦并发上来以后,这个就比较明显了,还有就是减少网络IO的消耗看下对应的数据量级,如果连表的话,是不是小表驱
- 2024-10-07MySQL 大表改列
前言作为一个MySQLDBA,和大表打交道的次数想必不少,大表上的ALTER操作一般影响都很大,平时会用OnlineDDL工具来辅助操作,但是本文会介绍一种特殊的技巧来应对一部分大表上的ALTER需求。解决方案从标题可以看出来,这次会用到MySQL5.7的新功能:GeneratedColumn,这种虚拟列
- 2024-09-15MySQL 大表拆分
概述在实际工作中,在关系数据库(MySQL、PostgreSQL)的单表数据量上亿后,往往会出现查询和分析变慢甚至无法执行统计分析的情况。这时就需要将大表拆分为多个小表,将小表分布在多个数据库上,形成一个数据库集群。这样的话,一条SQL统计语句就可以在多台服务器上并发执行,然后将执行结果汇
- 2024-08-12亿级大表冷热分级的工程实践
亿级大表冷热分级的工程实践原创修改于 2024-02-0609:49:502.2K7举报文章被收录于专栏:后台技术汇1、前言1.1方案背景成熟的业务系统都会配套一个重要的旁路系统--操作日志,它用于监控和记录核心业务系统的操作,以确保系统的稳定性和安全性。操作日
- 2024-08-12亿级大表垂直拆分:上云业务的工程实践
亿级大表垂直拆分:上云业务的工程实践原创修改于 2023-10-1410:59:096810举报文章被收录于专栏:后台技术汇1、前言伴随着不断扩张的业务量,在数据库层面一般会经历数据拆分。解决问题的第一步,就是重新评估DB表结构设计的合理性。2、大表问题
- 2024-07-24oracle大表性能优化
1不修改表结构的优化1.1收缩表,降低高水位线ALTERTABLETESTENABLEROWMOVEMENT;ALTERTABLETESTSHRINKSPACE;1.2对表收集统计信息BEGINDBMS_STATS.GATHER_TABLE_STATS(ownname=>user,tabname=>'TEST');END;1.3使用oracle的并行查询功
- 2024-07-22大表关联 not exists 卡死问题
检查是否有适当的索引:确保用于NOTEXISTS子查询的列上有索引,这样数据库可以快速确定是否存在符合条件的记录。 优化查询:减少返回的数据量:使用WHERE子句来限制需要检查的数据范围。分批处理:如果可能,将大的NOTEXISTS查询分解为多个小的查询,并且在可接受的时
- 2024-07-22记一次大库大表的治理过程
一、背景部门中一核心应用,因为各种原因其依赖的MySQL数据库一直处于高水位运行,无论是硬件资源,还是磁盘使用率或者QPS等都处于较高水位,急需在大促前完成对应的治理,降低各项指标,以保障在大促期间平稳运行,以期更好的支撑前端业务。二、基本情况2.1、数据库目前该数据库是一主两从
- 2024-06-04如何理解mysql小表驱动大表
就像自行车爬坡一样么,小齿轮驱动大齿轮MySQL采用“小表驱动大表”的策略,确实在某种程度上类似于自行车爬坡时小齿轮驱动大齿轮的原理,目的都是为了更高效地利用有限的资源达到目标。在数据库查询的上下文中,这个策略背后的逻辑可以这样理解:1.**效率最大化**:小表数据量少,遍历小
- 2024-06-03MySQL大表优化方案
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很
- 2024-05-30大表迁移,内存不够,如何用纯代码实现?
很多情况下,在工作中需要进行表单迁移,在没有迁移软件的前提下,应该如何进行操作呢?第一种思路可以通过命令行将表单文件导出再导入,但是表单文件足够大的情况下,导出和导入是非常麻烦的。在此提供一个纯java代码的简单思路。通常情况我们查询一个较大的表单需要花费很长的时间,并
- 2024-04-05SQL Server大表分区
遇到单表数据量很大的情况,为了提高查询效率,需要把表分为多个文件,本案例为一个Serial的数据库,OrderSerial表数据量太大,现在因为主键(SerialId,类型为BIGINT)自增,所以根据主键范围值来划分表文件:1~29.999.999 30.000.000~59.999.999 60.000.000~89.999.999 9
- 2024-02-11系统干崩了,只认代码不认人
各位朋友听我一句劝,写代码提供方法给别人调用时,不管是内部系统调用,还是外部系统调用,还是被动触发调用(比如MQ消费、回调执行等),一定要加上必要的条件校验。千万别信某些同事说的这个条件肯定会传、肯定有值、肯定不为空等等。这不,临过年了我就被坑了一波,弄了个生产事故,年终奖基本是
- 2024-02-07MySQL优化
优化分为六大部分:SQL语句的优化索引的优化表结构的优化事务优化系统配置优化物理机的优化SQL语句的优化a.尽量使用select字段名,不要使用select*,select*不能使用索引覆盖。只查需要用到的列。b.小表驱动大表。主查询in/exists子查询.ⅰ.in先执行右边的子查询
- 2024-01-31MySQL大表分页查询的坑以及解决方案
最近在做一个需求,需求内容中有一个功能点是查询指定用户标签里的用户id,这里做了分页查询,分页查询是用mysql的LIMIT设置offset和size值来实现的。在程序执行过程中会发现,如果查询的用户标签数据量很大时会出现慢查询告警,这里已经对mysql表的标签名称和用户id字段都加了索引,并且limi
- 2024-01-26公司用的亿级大表拆分方案,yyds!
作者:天机术士来源:juejin.cn/post/7078228053700116493前言笔者是在两年前接手公司的财务系统的开发和维护工作。在系统移交的初期,笔者和团队就发现,系统内有一张5000W+的大表。跟踪代码发现,该表是用于存储资金流水的表格,关联着众多功能点,同时也有众多的下游系统在使用这张表的
- 2023-12-06100G大表Alter更改表结构技术方案探讨
JAVA研发需求:需要对A表的XXX字段扩容至varchar(500)目前的现状:线上A表有100G+的数据,如果直接modifyXXXvarchar(500),会锁全表,即使用pt-osc工具凌晨搞,预估一宿加不完,并且从库会出现大面积延迟,读取的数据将不准确。https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-opera
- 2023-11-24MySQL大表设计怎么做?
MySQL是一种常用的关系型数据库管理系统,它在处理大表时需要特别注意设计和优化。下面将详细介绍MySQL大表的设计原则和优化策略。1.数据库设计数据库范式化:将数据按照规范的关系模型进行拆分和组织,避免数据冗余和更新异常。合理选择主键:选择适合业务需求的主键类型,并确保主键
- 2023-11-21MySQL大表设计
存储大规模数据集需要仔细设计数据库模式和索引,以便能够高效地支持各种查询操作。在面对数亿条数据,每条数据包含数百个字段的情况下,以下是我能想到的在设计数据库的时候需要注意的内容,不足之处欢迎各位在评论区批评指正:1.数据库设计表结构设计垂直分割:将大的表分割成多个相
- 2023-11-03mysql sql常用优化
1 explain输出执行计划,检查orderby和where后边的字段是否建立索引2in()中的列不应过多,notin和in()数据过多都不再走索引,使用全表扫描,连续数值可以使用between1and33select后边指定字段,少用select(*)4 where子句中避免isnull/isnotnull5 应尽量避免在whe
- 2023-10-19mysql三种方案优化 2000w 数据大表
摘录自当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题数据的插入,查询时长较长后续业务需求的扩展在表中新增字段影响较大表中的数据并不是所有的都为有效数据需求只查询时间区间内的评估表数据体量我们可以从表容量/磁
- 2023-09-04mysql 大表如何ddl
大家好,我是蓝胖子,mysql对大表(千万级数据)的ddl语句,在生产上执行时一定要千万小心,一不小心就有可能造成业务阻塞,数据库io和cpu飙高的情况。今天我们就来看看如何针对大表执行ddl语句。通过这篇文章,你能了解到下面的知识点,传统ddl和onlineddl的区别mysql的ddl经过了几个版
- 2023-08-17使用NineData实现亿级别MySQL大表迁移
MySQL作为当前应用最广泛的开源关系型数据库之一,具有高性能、稳定性和易用性等特性,是许多网站、应用和商业产品的主要数据存储。在一些场景中,如果出现单表行数上亿的情况,就可能需要开发和DBA对大表进行优化:分表、归档或扩容操作,而在这些操作中都涉及了对数据的迁移。所以,提供高