首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一种批量删除数据的方法

这两天碰见一个比较紧急的生产问题,由于还在处理中,所以暂时不能给出整体描述,但其中涉及的一个问题就是删除一张大表中的过期历史数据,针对不同的类型的表可能有不同的解决方法,比如若是按照时间做的分区表...删除历史数据可以使用存储过程,也可以写一个程序来做,区别是存储过程是直接在数据库中操作,少了客户端和数据库交互的环节,若是需要一些复杂的校验逻辑,可能写程序要更方便一些,但也不是绝对的,可能有人认为存储过程更好...这篇文章中(http://blog.csdn.net/xyjnzy/article/details/6194177)还介绍了另一种更精细的方法,判断日志是否已经归档了,避免数据删除快于日志归档的速度,如果发现尚未完成切换...针对我这个需求,有一些可以改动的地方,由于这张表是一个按照NUMBER值做hash的哈希分区表,所以从效率上看,还可以精确至每个hash分区来做删除,这点是建荣给的建议,另外例子中自治事务我觉得也是可以不用的...总结一下, 1.如果使用存储过程,或许可以不用自治事务。 2.可以将partition作为另一个参数。

1.3K21

对于Oracle兼容,我们手拿把掐

国产当自强, 数据库自主可控破在眉睫 我们通过数据库的几点重要性,可以意识到数据库自主可控的重大意义: 基础软件“皇冠上的明珠” 三大“卡脖子”技术的大动脉 计算产业之“根” 大数据发展之“魂” 3...国产数据库该如何去O? Oracle兼容性是一个系统性的工作,不能满足于简单的SQL语法/语义兼容,主要有引擎、生态工具两个方面。...分区表能力 分区类型支持RANGE、LIST、HASH分区,以及这些类型的组合分区 支持对分区的单独访问,例如SELECT * FROM 表 PARTITION(子分区) 支持分区键更新 新增分区后,自动维护...PL/SQL - 自治事务 自治事务: 自治事务由主事务启动;自治事务运行时,主事务挂起 自治事务与启动它的主事务相互独立 自治事务可以用在存储过程、函数、匿名块以及触发器中 如果自治事务与主事务产生锁冲突...兼容程度不明确,通过自动化覆盖评估迁移改造,平台化的数据库对象和应用评估功能,全面完整的迁移评估报告。 4.

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据架构选型必读:2021上半年数据库产品技术解析

    此外,自治管理内存列存储还能够根据使用模式来自动执行列压缩。Oracle 21c提供全新的内存矢量联接算法,加快了复杂查询的速度。 自动化分片:数据分片功能不共享软硬件,可部署在本地或云端环境。.../pgSQL RETURN QUERY支持并行计算 刷新物化事务支持并行计算 4、内置sharding功能接口 postgres_fdw 持续增强 支持外部表异步并行计算 bulk insert 远程分区表的子分区可以...此外,该版本提高了单机分区数上限并支持了大事务,真正做到通过一套引擎解决混合负载的原生分布式数据库产品。...子类可以覆盖此方法,以便压缩过滤器可以确定在压缩期间是否必须读取实际的blob值。...3、冷热分级存储UDF 为方便用户为时序表建立分区、维护分区表、冷热数据转换,实现了关于创建分区模板、建立分区、替换冷热分区的一整套管理接口。

    92520

    Greenplum性能优化之路 --(二)存储格式

    分区压缩:在使用分区表的时候,每个分区表也可以设置不同的压缩配置,这个常用于对数据进行冷热分离,比如对于非常老的数据,由于访问频率较低,可以考虑采用较大的压缩比,减少存储量。...blocksize不要设置过大,特别是对于分区表,GP对于每个分区的每个字段都会维护一个buffer,blocksize过大,会导致消耗的内存过大,通常就采用默认值32768即可。...混合存储 一张表是否可以同时使用多种存储方式呢?对于分区表,是可以的。...混合存储一般用于这样的场景,对于一张按时间分区的表,通常对于不同时间点的数据行为是不一样的,比如对于最近的数据,会有较多的明细查询,而对于比较老的数据,则是以分析为主。...混合存储的关键就是使用到了GP的交换分区语法,也就是将一张独立的表与自己的一个分区表进行交换,当然这里前提是新表的结构是一样,并且交换的过程没有新数据进入。

    17.7K7041

    Greenplum性能优化之路 --(二)存储格式

    分区压缩:在使用分区表的时候,每个分区表也可以设置不同的压缩配置,这个常用于对数据进行冷热分离,比如对于非常老的数据,由于访问频率较低,可以考虑采用较大的压缩比,减少存储量。...blocksize不要设置过大,特别是对于分区表,GP对于每个分区的每个字段都会维护一个buffer,blocksize过大,会导致消耗的内存过大,通常就采用默认值32768即可。...混合存储 一张表是否可以同时使用多种存储方式呢?对于分区表,是可以的。...混合存储一般用于这样的场景,对于一张按时间分区的表,通常对于不同时间点的数据行为是不一样的,比如对于最近的数据,会有较多的明细查询,而对于比较老的数据,则是以分析为主。...混合存储的关键就是使用到了GP的交换分区语法,也就是将一张独立的表与自己的一个分区表进行交换,当然这里前提是新表的结构是一样,并且交换的过程没有新数据进入。

    1.5K20

    PostgreSQL 分区表为什么要带 pg_pathman 过时了?

    PostgreSQL 如果使用较早的“大仙”们,在做分区的时候会提pg_pathman,为什么一个数据库使用分区表还要一个插件,可能习惯商业数据库的“人儿们”,不大理解。...通过截图我们可以看到建立一个range 分区也是很简单的事情,分表给出分区键,初始值,间隔值(一个表能承载的数据量或者间接值,生成的表的数量,是否在建立分区的过程中就开始从原表拷贝数据 如果对range...通过上面的截图,可以看到pathman_config 里面存储的数据,我们目前是有一个分区表并且是range分区的。...通过上面的截图,可以看到pathman_config 里面存储的数据,我们目前是有一个分区表并且是range分区的。...通过上面的截图,可以看到pathman_config 里面存储的数据,我们目前是有一个分区表并且是range分区的。

    2.1K20

    从Oracle新特性看数据库发展

    数据库智能管理 — “自治” Oracle最早在2017年提出了自治的概念,其提出并倡导的”Autonomous Database,100% Self-Driving”理念开创了数据库智能管理之先河。...解读 数据库的架构是否灵活,满足用户的各异需求,对数据库产品来说很重要。早前的一些做法,更多是通过”中间件+数据库”的配合来完成。...当一个节点失效,转移到另外一个节点,在19c中Oracle持续改进和增强了连续性保持,数据库会自动记录会话状态,捕获用于重演的信息,以便在切换时,在新节点自动恢复事务,使DML事务同样可以获得连续性支持...在线维护操作增强 在不同版本中, Oracle 持续增强在线维护操作, 例如在12.2 开始支持的Online Move、在线修改普通表为分区表等特性。...混合分区表支持 在19c中,Oracle增强了分区特性,可以将外部对象存储上的文件,以外部表的方式链接到分区中,形成混合分区表,借助这个特性,Oracle将数据库内外整合打通,冷数据可以剥离到外部存储,

    1K10

    GreenPlum中的数据库对象

    可能会安装有多个单独的Greenplum数据库系统,但是通常只会用环境变量设置选择其中一个。 一个Greenplum数据库系统中可以有多个数据库。...要对一个有外部表作为叶子子表的分区表使用COPY命令,可以使用一个SQL查询来拷贝数据。...向分区表中载入数据的最佳方法是创建一个中间状态表,把数据载入其中,然后把它交换到用户的分区设计中。...例如,如果用户有一个分区表,它按月被分成月度分全局并且对该表的大部分查询值访问较新的数据,用户可以把较旧的、较少访问的数据拷贝到外部表并且把较旧的分区与这些外部表交换。...在越低级别的设置具有越高的优先级: 子分区的列压缩设置将覆盖分区、列和表级的设置 分区的列压缩设置将覆盖列和表级的设置 列的压缩设置将覆盖整个表级的设置 注意:存储设置不可以被继承 检查压缩与分布情况

    85820

    GreenPlum分布式数据库存储及查询处理

    Greenplum有两种数据分布策略: Hash分布 当选择Hash分布策略时,可以指定表的一列或者多列组合。...一张大表逻辑性地分成多个部分,如按照分区条件进行查询,将减少数据的扫描范围,提高系统性能。提高对于特定类型数据的查询速度和性能,更方便数据库的维护和更新。 决定表的分区策略: 表是否足够大?...大的事实表适合做表分区。 对目前的性能不满意?查询性能低于预期时再考虑分区。 查询条件是否能匹配分区条件?查询语句的WHERE条件是否与考虑分区的列一致 数据仓库是否需要滚动历史数据?...历史数据的滚动需求也是分区设计的考虑因素 按照某个规则数据是否可以被均匀的分拆?尽量把数据均匀分拆的规则 Greenplum数据库支持: 范围分区:基于一个数字型范围划分数据,例如按照日期或价格划分。...在越低级别的设置具有越高的优先级: 子分区的列压缩设置将覆盖分区、列和表级的设置 分区的列压缩设置将覆盖列和表级的设置 列的压缩设置将覆盖整个表级的设置 注意:存储设置不可以被继承 create table

    1.2K30

    Oracle 12.2新特性掌上手册 - 第三卷 Core Improvements

    当使用STAGE_ITAB索引选项创建CONTEXT索引时,将创建一个空的$ G表,其中包含$ H btree索引。...2、Partitioning: Auto-List Partitioning(自动列表分区) 数据库会自动为表的每个不同分区键值创建一个单独的(新)分区。...介个好像听起来很神奇的样子,是否很多人跟我一样第一次听说数据库还能实现这功能,一种被打脸的感觉。 Oracle文本支持情感分析和搭配。 情绪分析提供与搜索词相关联的积极和消极趋势的识别。...只读分区和子分区启用对DML活动的精细控制,这增强了分区表的数据管理功能。...使用多个列来定义列表分区表的分区标准,可使新类应用程序从分区中受益。

    1K120

    greenplum gptransfer命令参数与示例详解

    你可以执行其中一个 以下类型的操作: *使用--full选项复制Greenplum数据库系统。 此选项将源系统中的所有用户创建的数据库复制到 不同的目标系统。...对于分区表,您可以指定--partition-transfer或 --partitiontransfer-non-partition-target选项,带-f选项进行复制 来自源数据库的分区表的特定叶子分区...相同的目标表可以 在文件中为多个源子分区表指定的 属于单个分区表。从源叶传输数据 子分区表属于不同的分区表到 不支持单个非分区表。...--truncate 指定此选项可截断目标中的表 数据库是否已存在。 最多只能指定其中一个选项--skip-existing, --truncate,或--drop。...例如,有一个名为“person_1_prt_experienced”的子分区表 在来自源系统的数据库“srcdb”中的模式“people”中: CREATE TABLE person(id int

    1.9K20

    流数据湖平台Apache Paimon(一)概述

    (2)对于写入,它支持来自数据库变更日志(CDC)的流式同步或来自离线数据的批量插入/覆盖。...它的使用方式与传统数据库没有什么区别: 在批处理执行模式下,它就像一个Hive表,支持Batch SQL的各种操作。查询它以查看最新的快照。 在流执行模式下,它的作用就像一个消息队列。...分区是一种可选方法,可根据日期、城市和部门等特定列的值将表划分为相关部分。每个表可以有一个或多个分区键来标识特定分区。 通过分区,用户可以高效地操作表中的一片记录。...如果定义了主键,则分区键必须是主键的子集。 1.3.3 Bucket 未分区表或分区表中的分区被细分为存储桶,以便为可用于更有效查询的数据提供额外的结构。 桶的范围由记录中的一列或多列的哈希值确定。...对于任意两个同时修改表的writer,只要他们不修改同一个存储桶,他们的提交都是可序列化的。如果他们修改同一个存储桶,则仅保证快照隔离。也就是说,最终表状态可能是两次提交的混合,但不会丢失任何更改。

    2.9K50

    技术分享 | 微服务架构的数据库为什么喜欢分库分表?

    因此,为了处理高并发,设计数据库就可以采取分库的方式进行,使得各个微服务拥有自己独立的数据库,就好比订单微服务自治订单信息、支付流水信息、退款信息等等,当订单微服务需要会员微服务的会员数据时,可以通过服务的通讯机制...表分区是根据一定的规则,把数据库的一张表分解为多个更小的表,使用分区的表从逻辑上看还是一个表,但物理存储分为了多份,表分区后的每个部分,都可以独立的进行数据处理,分区具有以下好处: 存储空间更大了 查询速度更快...两种分区形式都支持整数类型,日期类型,字符类型,区别在于,如果COLUMNS分区的分区键有多个,当数据库要进行数据插入时,会先考虑第一个键是否满足,如果满足条件就会进行数据写入,如果不满足条件就要对第二个键的条件进行判断...子分区是对分区表的每个区分,进行二次的分区,使用RANGE和LIST对表进行分区,则可以使用HASH或KEY进行子分区,假设表有2个分区,这2个分区又被进一步的分为2个子分区,总共有4个分区,写法有两种...4.总结 本文介绍了为什么微服务架构大多采用分库分表的方式进行设计数据库,当然,分布式系统在设计过程中进行分库分表还需要注意一些问题,比如,在我们创建数据库表的时候是否可以先考虑表内数据的特性,事先将一些不经常需要更改的内容抽离出来

    56520

    MySQL技能完整学习列表13、MySQL高级特性——1、分区表(Partitioning)——2、复制(Replication)——3、集群(Clustering)

    1、分区表(Partitioning) 分区表是MySQL中一种将数据分散存储在多个物理子表中的技术,但从逻辑上看,它们仍然被当作一个表来对待。...这种技术可以极大地提高大型数据库的性能、管理和可维护性。 为什么使用分区表 性能提升:通过将数据分散到多个物理部分,查询可以并行处理,从而提高性能。...管理方便:可以独立地备份、恢复或优化某一个分区,而不影响其他分区。 数据归档:对于具有时间序列数据的应用,可以使用分区表按日期归档数据。...RANGE分区示例 假设有一个销售记录表sales_records,其中有一个sale_date列记录了销售日期。...2、复制(Replication) MySQL的复制功能允许数据从一个MySQL数据库服务器(称为主服务器或Master)复制到一个或多个MySQL数据库服务器(称为从服务器或Slave)。

    20210

    干货 | 一个MySQL 5.7 分区表性能下降的案例分析

    我们在测试环境,把数据库升级到5.7.18版本,验证MySQL 5.7.18版本是否符合我们的预期。观察运行了一段时间,有开发反馈,数据库的性能比之前的5.6.21版本有下降。...主要的表现特征是遇到比较多的锁超时情况。开发另外反馈,性能下降相关的表都是分区表。更新走的都是主键。这个反馈引起了我们重视。我们做了如下尝试: 数据库的版本为5.7.18, 保留分区表,性能会下降。...数据库版本为5.7.18,把表调整为非分区表,性能正常。 把数据库的版本回退到5.6.21版本,保留分区表,性能也是正常 通过上述测试,我们大致判定,这个性能下降和MySQL5.7版本升级有关。...为了进一步分析并定位问题,我们抽丝剥茧,构建了如下一个简单的重现过程 // 创建一个测试分区表t2: CREATE TABLE `t2`( `id` INT(11) NOT NULL, `dt...从代码中可以看出,每次单条记录的update操作,在进行index scan上锁时,对分区表数目相同的行数进行上锁。这个是根本原因。 ? 验证结论 ?

    2.1K70

    TiDB 源码阅读系列文章(二十)Table Partition

    从逻辑上看只有一张表,但是底层却是由多个物理分区组成。相信对有关系型数据库使用背景的用户来说可能并不陌生。 TiDB 正在支持分区表这一特性。...程序读写的时候操作的还是逻辑表名字,TiDB 服务器自动去操作分区的数据。 分区表有什么好处? 优化器可以使用分区信息做分区裁剪。在语句中包含分区条件时,可以只扫描一个或多个分区表来提高查询效率。...解释下分区键,在分区表中用于计算这一行数据属于哪一个分区的列的集合叫做分区键。分区键构成可能是一个字段或多个字段也可以是表达式。...如果删除了分区导致分区不能覆盖所有值,那么插入数据的时候会报错。...如果 Partition 的 Key 算出来是一个 NULL,对于不同的 Partition 类型有不同的处理方式: 对于 Range Partition:该行数据被插入到最小的那个 Partition

    2.1K40

    MySQL 5.7 分区表性能下降的案例分析

    我们在测试环境,把数据库升级到5.7.18版本,验证MySQL 5.7.18版本是否符合我们的预期。观察运行了一段时间,有开发反馈,数据库的性能比之前的5.6.21版本有下降。...主要的表现特征是遇到比较多的锁超时情况。开发另外反馈,性能下降相关的表都是分区表。更新走的都是主键。这个反馈引起了我们重视。我们做了如下尝试: 数据库的版本为5.7.18, 保留分区表,性能会下降。...数据库版本为5.7.18,把表调整为非分区表,性能正常。 把数据库的版本回退到5.6.21版本,保留分区表,性能也是正常 通过上述测试,我们大致判定,这个性能下降和MySQL 5.7版本升级有关。...问题重现 测试环境的数据库表结构比较多,并且调用关系也比较复杂。为了进一步分析并定位问题,我们抽丝剥茧,构建了如下一个简单的重现过程。...从代码中可以看出,每次单条记录的update操作,在进行index scan上锁时,对分区表数目相同的行数进行上锁。这个是根本原因。

    67400

    拿美团offer,Hive基础篇(持续更新中)

    HIve:由 Facebook 开源用于解决海量结构化日志的数据统计。 Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL查询功能。...对于 Hive 的 String 类型相当于数据库的 varchar 类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储 2GB 的字符数。 集合数据类型 ?...)> use db_hive; 4.删除数据库 1)删除空数据库 hive>drop database db_hive2; 2)如果删除的数据库不存在,最好采用 if exists 判断数据库是否存在...(2)EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路 径(LOCATION),Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表, 仅记录数据所在的路径...hive (default)> desc formatted student2; Table Type: MANAGED_TABLE 6.分区表 分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹

    53030

    如何编写高性能sql语句

    可见,执行计划并不是固定的,它是“个性化的”。产生一个正确的“执行计划”有两点很重要:     a、SQL语句是否清晰地告诉查询优化器它想干什么?  ...b、查询优化器得到的数据库统计信息是否是最新的、正确的? 2)定期归档 上文中提到了表归档,那什么是归档?其实就是做一个数据库的存档。...例如:数据库有一张表数据量很大,真正WEB项目只用到一个月内的数据,因此把一个月前的旧数据定期归档,该怎么做?...这可以大大降低数据库解析SQL语句的负担。...五、mysql分区表 分区表是一种粗粒度,简易的索引策略,适用于大数据的过滤场景.最适合的场景是,没有合适的索引时,对其中几个分区表进行全表扫描.或者只有一个分区表和索引是热点,而且这个分区和索引能够全部存储在内存中

    1K60

    2022下半年盘点:20+主流数据库重大更新及技术要点汇总

    ,这造成了数据重复存储,现在通过混合方式,重建构建 source,部分数据可以来自列式doc_values,这会显著节约索引存储占用。...产品众多,竞争激烈,有专用的时序数据库,有混合时序特性的传统关系型数据库,也有混合时序特性的新型NOSQL数据库,有的强调存储空间压缩率,有的强调读写性能,有的是为了增强自身产品生态。...其中值得关注的新特性有: 1、查询更实时,所有数据可毫秒级访问 面向结构化数据,SequoiaDB v5.2版本提供深度的Join优化及列存微分区技术,在多个查询场景下,性能达到了毫秒级实时返回;分析场景中...3、分区表性能提升 通过压缩等方式,极大的降低了元数据的体量,可以支持超大规模亿级别的分区表数目。...等版本,其中值得关注的新特性/新功能/新改进/新修复有: 1、Oracle兼容性:支持自定义数据类型,新增系统函数、系统视图以及高级包80+; 2、性价比:支持ECS混合部署、支持8U实例、ECS支持10GE

    1.8K40
    领券