`
whiller
  • 浏览: 2948 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

大数据量时更新某字段的两种方案 哪个更好?

SQL 
阅读更多
场景描述:
现在有两个表分别为ip和data表,
ip表:ipId,startIp,endIp 都是整型        数据量为千级,可以按照1000左右来算
data表:dataId,ip,status 都是整型(另外还有其他字段) 数据量为百万级 可以按照2 000 000左右来算

因为业务上的需要,现在需要更新data表的status值为0或1,规则是:如果ip在【startIp,endIp】之间 则更新为1,否则更新为0

我现在只想到了2种方案:
A: 先遍历data表全部设置为status=0,然后根据针对每条ip表记录 更新data表中对应ip段内所有记录的status为1
update data set status=0 ;
update data set status=1 where status=0 and  (ip bwteen startIp1  and endIp1 );
update data set status=1 where status=0 and  (ip bwteen startIp2  and endIp2 );
update data set status=1 where status=0 and  (ip bwteen startIp3  and endIp3 );
...
update data set status=1 where status=0 and  (ip bwteen startIpN  and endIpN );


B:针对data表的所有ip,我们去匹配ip表,只要ip在ip表的任意一个【startIp,endIp】内我就更新status为1 ,否则为0
update data set status=1 where status=0 and  (   (ip bwteen startIp1  and endIp1 ) 
                                              or (ip bwteen startIp2  and endIp2 ) 
                                              or (ip bwteen startIp3  and endIp3 ) 
                                                 ...
                                              or (ip bwteen startIpN  and endIpN ) 
                                             );

update data set status=0 where status=1 and not (   (ip bwteen startIp1  and endIp1 ) 
                                                 or (ip bwteen startIp2  and endIp2 ) 
                                                 or (ip bwteen startIp3  and endIp3 ) 
                                                    ...
                                                 or (ip bwteen startIpN  and endIpN ) 
                                                );


本人在数据库方面基础薄弱  实在看不出来哪种方法好,希望大家帮忙分析一下
分享到:
评论

相关推荐

    sql_按照某一个字段进行去重后获取全部字段

    在实际工作中,我们经常会遇到需要对数据表中的记录进行去重的情况,尤其是当某个字段作为唯一标识符时,我们希望能够基于这个字段获取最新的、唯一的或者汇总的数据记录。下面将详细阐述这一知识点。 ### SQL 去重...

    将数据库中的两个字段合并为一个字段

    3. **性能考量**:对于大数据量的操作,直接在数据库层面进行合并可能会消耗较多资源,这时可以选择先筛选出需要的数据,再在应用程序中进行合并处理。 4. **测试验证**:在实际应用前,务必进行充分的测试,确保...

    泛微E9流程修改字段高亮显示

    针对这一需求,本文将介绍两种不同的实现方案: ##### 方法一:使用标识字段实现高亮显示 1. **方案概述**:此方法是在原有的表单字段基础上,为每一个可能被修改的字段添加一个额外的标识字段(例如“isModified...

    基于.net_的大数据量SQL_SERVER_系统_数据库和代码_优化方案

    ### 基于.NET的大数据量SQL SERVER系统数据库和代码优化方案 #### 一、引言 在.NET框架下开发的应用程序,特别是那些涉及到大量数据处理的系统,往往需要面对性能优化的问题。其中,数据库查询优化是提升整体系统...

    Excel2021数据透视表字段分组.docx

    但是,当数据量很大时,数据透视表的字段分组变得尤为重要。本文将对 Excel 2021 数据透视表字段分组进行详细的介绍和分析。 一、数据透视表的基本概念 数据透视表是 Excel 中的一种 Reporting 工具,用于快速地对...

    arcgis小技巧字段内属性提取

    通过对ArcGIS中的字段属性提取技巧的学习和实践,我们可以更加高效地处理地理空间数据,从而更好地支持各类地理信息系统项目的开发与实施。无论是基础的数据整理还是高级的数据分析,掌握这些小技巧都将为日常工作...

    数据处理方案

    为了更好地管理和利用数据资源,数据处理方案成为了一个不可或缺的部分。本文将基于提供的文件内容,深入解析数据处理方案中的关键技术点,包括ETL(Extract, Transform, Load)过程、数据同步方式以及数据转换方法...

    一次MySQL两千万数据大表的优化过程,三种解决方案!

    * 尽量使用 INT 而非 BIGINT,如果非负则加上 UNSIGNED(这样数值容量会扩大一倍),当然能使用 TINYINT、SMALLINT、MEDIUM_INT 更好。 * 使用枚举或整数代替字符串类型 * 尽量使用 TIMESTAMP 而非 DATETIME * 单表...

    asp.net2.0 大数据量分页

    本文将深入探讨这两种方法,并重点讲解如何通过自定义分页技术来高效地处理大数据量。 #### 默认分页与自定义分页对比 ##### 默认分页 - **实现方式**:默认分页是通过数据控件的智能标签中的“启用分页”选项来...

    3百万数据量数据库查询表(代码已经打成压缩包)

    数据库查询是IT行业中至关重要的技能,特别是在大数据量的环境下,高效的数据检索能力直接影响到系统性能。本资源提供了300万条数据...通过不断地学习和实验,我们可以更好地应对日益增长的数据量挑战,提升系统性能。

    word中大量小表格批量插入相同字段值

    然而,这两种方法在面对大量的表格时显得效率低下且容易出错。特别是在表格数量众多的情况下,手动操作不仅耗时费力,还可能导致遗漏或错误。 #### 三、宏技术的应用与优势 为了解决上述问题,本文介绍了一种更为...

    opencart数据字段及框架结构

    通过深入学习这些知识,开发者可以更好地定制主题、扩展功能、优化性能,以满足不同商家的需求。无论是初学者还是有经验的开发者,OpenCart都提供了足够的灵活性和可扩展性,使其成为一个受欢迎的电商解决方案。

    oracle_11gR2_06 介绍 数据库,数据表,记录,字段,和对数据表的操作(create,alter,drop)

    ### Oracle 11g R2 数据库介绍及操作详解 #### 一、Oracle 11g R2 概述 Oracle 11g Release 2(简称 Oracle 11g R2)是Oracle公司推出的一...通过对Oracle 11g R2的学习和实践,可以更好地理解和管理数据库中的数据。

    ASP技术常遇问题解答-Insert into与AddNew哪一个更好?.zip

    对于简单的插入操作,AddNew可能是更好的选择,因为它简单直接。而对于复杂逻辑或大数据量的插入,"Insert into"结合批处理和参数化查询可以提供更高的性能和安全性。 5. **总结** ASP技术中,"Insert into"和Add...

    06_传智播客JPA详解_大数据字段映射与字段延迟加载

    在IT领域,JPA(Java Persistence API)是Java平台上的一个规范,用于处理对象关系映射(ORM),它使得开发者可以使用...通过学习这些核心概念,你将能够更好地设计和实现高效的ORM解决方案,特别是在处理大数据量时。

    数据结构课程设计 学生成绩管理设计方案【c++】

    因此,如果数据量大且频繁查找,可能需要考虑其他数据结构,如哈希表或平衡二叉搜索树。 9. **代码规范**:遵循良好的编程实践,如使用有意义的变量名,注释代码,保持代码整洁,以及适当的错误处理。 通过这个...

    ETL数据增量抽取方案.pdf

    增量抽取是ETL过程中的一个重要环节,尤其对于大数据量处理尤为重要。下面介绍两种常见的增量抽取方法: ##### 1. 触发器方式 - **原理**:在要抽取的表上建立插入、修改和删除触发器,当源表中的数据发生变化时,...

    Oracle如何对CLOB行字段来执行全文检索

    Oracle CLOB 行字段全文检索实现方法 Oracle 数据库中,CLOB 行字段是一种常用的数据类型,用于存储大...这些过程函数可以帮助开发者更好地操作 LOB 数据类型,实现对 CLOB 字段中的内容进行 Like 查找和其他操作。

    SQL字段类型

    在使用Unicode时,`nchar`和`nvarchar`提供更好的兼容性,但存储空间较大。此外,查询时避免在非Unicode字段上使用`N`前缀的字符串常量,以免影响索引的使用。 综上所述,字段类型的正确选择不仅关乎数据存储的有效...

Global site tag (gtag.js) - Google Analytics