`

大数据的存储和查询优化总结

阅读更多

最近的项目里需要对大数据量的数据进行存储和查询, 每天的基础数据大概在500w~1500w之间,  每1000w的数据大概会占用1.5GB~2GB的物理存储, 这对我们的数据库设计, 程序和服务器都是一个不小的挑战.  数据库我们用的是DB2, 下面是一些经验总结(不断更新中..):


1. 在大数据量的情况下,  如果 join的表只是为了数据过滤, 则应该考虑用子查询替换join


2. 避免在索引键上做计算, 即便这个计算很简单的, 因为如果索引键上加上计算的话, 将不能使用索引, 严重影响查询效率


3.  索引排序的选择, 主要考虑查询和插入的性能. 如果一个列在程序里是成不断增长的, 比如记录的创建时间, 则应该考虑用倒序(desc), 这样在插入数据时, 新索引的建立不会影响到之前索引的位置. 所以, 主键生成的策略也应该考虑到这一点, 如果用UUID的话, 因为字符串并不能保证顺序, 左右在插入的时候, 对索引的结构影响比较大; 而自动增长的主键则会避免这个情况, 当是尽量避免使用纯sequence, 因为这样既不方便数据的移植, 也会有seqiemce循环的问题; 时间格式加上sequence混合生成主键, 应该是一个不错的解决方案. 时间可以用yyyyMMddhh格式, 这样的主键也可以比较直观的看出记录的创建时间.


3. 把能够通过索引迅速缩小查询范围的条件放到前面


4. 使用ike: like 'x%' 将会使用索引,而like '%x'将不能使用索引,而且因为like检索时, 如果前面是固定的字符, 那么, 就可以跟索引键做对比, 如果前面是不固定的字符(比如%), 则无法利用索引. 且like的检索时间与字符串长度呈线性关系,使用VARCHAR代替CHAR可以去掉多余的空格,会加快检索


5. 如果可以, 使用 fetch first only 或 limit 限制结果集大小, 这样在大数据量的情况下, 可以更快的返回数据.


6. 在一开始做大表设计的时候, 就要充分考虑表的分区和扩展, 比如使用时间字段作为分区字段. 分区字段要尽量保证数据的均匀, 避免出现数据倾斜. 当然如果历史数据, 不经常用到的话, 还是优先考虑使用历史表来保存历史记录.


7. 如果查询和更新都比较频繁的话, 可以考虑使用数据库读写分离技术的, 不过如果查询对实时性要求比较高的话, 这种查询还是应该在主节点(复制插入)上执行. 


8. 大数据的删除. 主表上为了提高查询性能, 用了大概5-6个索引字段, 导致在删除这个表的数据时, 异常的慢, 即使删除一条也需要大概20-30秒. 而我们有时候要删除的数据是千万级的, 所以普通的delete几乎无法工作. 解决这个问题, 我们换了一种思路, 用update语句来将需要删除的数据与正常业务数据隔离, 比如将需要删除的数据的业务时间改为2000年前或者如果专门有的是否删除字段就更好了. 然后删除的任务就可以慢慢来做了. 正好我们的表分区是通过业务时间来做的, 这个时候, 将2000年前的数据通过分离表分区来独立出来, 再把这个表drop掉, 数据就删除了.


 

分享到:
评论
1 楼 ljl961890233bear 2014-07-28  
这也叫大数据?也就是SQL优化的一半方法、。。。。

相关推荐

    大数据存储与处理关键技术论文

    综上所述,大数据存储与处理的关键技术主要涵盖大数据存储架构的优化、重复数据删除技术和编码优化。这些技术对于应对大数据体量大、速度快和价值密度低的挑战至关重要。通过高效的存储架构,我们可以实现数据的有效...

    大数据优化

    总结,大数据优化是企业数字化转型不可或缺的一部分,涉及到数据的收集、存储、处理和分析等多个环节。掌握这些知识和技能,不仅可以提升数据处理效率,还能为企业创造更大的商业价值。通过内部培训和案例学习,员工...

    大数据存储课程教学大纲(质量标准)共5页.pdf.zip

    6. 大数据存储优化:研究数据压缩、索引优化、数据分区等提升存储效率的方法。 7. 大数据存储实战:通过案例分析和项目实践,强化理论知识的运用。 三、教学方法: 1. 理论授课:系统讲解大数据存储的理论知识,...

    大数据时代存储解决方案

    5. **安全性考量**:考虑到大数据存储的安全性问题,需要采取措施确保数据的安全性和合规性,例如通过自主研发或合作引进第三方工具,增强数据保护能力。 #### 四、大数据在各行业的应用 1. **能源行业**:利用...

    成本管理-快手大数据存储管理的落地实践.pdf

    总结来说,快手在大数据存储管理的落地实践中,通过科学的成本管理架构和策略,以及对数据的全生命周期和全范围管理,成功地实现了数据存储成本的最优化。这些做法不仅提高了数据处理的效率,也为企业在激烈竞争的...

    大数据存储方式概述.doc

    总结来说,大数据存储的解决方案主要围绕提高存储效率、降低成本和简化管理进行。存储虚拟化、重复数据删除、自动精简配置和容量扩展等技术是应对大数据挑战的关键。随着技术的不断发展,未来可能会出现更多创新的...

    大数据存储及分层实践-2-3 大数据存储加速与服务化在Shopee的实践.zip

    总结,Shopee的大数据存储及分层实践是一个综合性的解决方案,涉及到数据存储、处理、服务化等多个层面,旨在提升整体数据系统的效率、灵活性和可扩展性。这样的实践对于其他大型企业来说具有很高的参考价值,有助于...

    唯品会大数据存储和计算方案

    综上所述,唯品会通过不断的技术创新和流程优化,在大数据存储和计算领域取得了显著成效。通过构建高效的大数据平台,不仅提高了数据处理的效率,还为业务发展提供了强有力的支持。未来,唯品会将继续探索更先进的...

    大数据存储平台方案.pdf

    总结来说,IBM Spectrum Scale等一流的大数据存储平台为企业提供了坚实的数据基础,使得企业能够有效地处理和利用大数据,从而驱动业务创新和竞争优势。而全面的解决方案应包括存储、分析、安全和管理等多个层面,以...

    面向新型存储的大数据存储架构与核心算法综述.pptx

    本资源摘要信息主要围绕“面向新型存储的大数据存储架构与核心算法”这一关键词进行综合分析和总结,旨在为相关领域的学者们提供借鉴和参考。 大数据存储架构的研究现状: 大数据存储架构是大数据处理的重要组成...

    (完整)数据中台之结构化大数据存储设计.docx

    总结来说,数据中台的结构化大数据存储设计是一个综合性的任务,需要根据业务需求选择合适的存储技术,并确保数据的高效流动和分析。同时,随着技术的进步,大数据处理正朝着轻量化和智能化的方向发展,研发工程师和...

    数据中台之结构化大数据存储设计.docx

    总结来说,数据中台的结构化大数据存储设计是企业数字化转型的基础,涉及到众多组件的选型和集成。架构师需根据业务特性,合理选择存储解决方案,以实现数据的高效管理、分析和利用,推动业务的智能化发展。随着...

    大数据,算法总结

    Hadoop是一个由Apache基金会开发的分布式系统基础架构,是大数据存储和计算的关键技术。Hadoop包括了HDFS分布式文件系统,它以高可靠性、高扩展性和高效性著称,非常适合于大数据存储。 Hive是一个构建在Hadoop上的...

    大数据相关总结

    4. 数据仓库和OLAP:如Hive和Presto,提供对大数据的离线分析和查询能力。 5. 流处理:如Kafka、Flink等,用于实时数据处理和事件驱动的应用。 三、大数据应用 1. 商业智能:通过大数据分析,企业可以洞察市场趋势...

    大数据应用测试经验总结.pdf

    大数据应用测试经验总结 大数据应用测试与传统的Web系统测试有很大的差异,主要因为它涵盖了从数据采集、处理到应用展示的整个流程。测试分为Web侧和ETL侧,Web侧主要进行功能测试,而ETL测试涉及数据的提取、转换...

    大数据存储及分层实践-5-3 京东大数据存储跨域及分层实践.zip

    总结来说,京东的大数据存储跨域及分层实践涉及到多个层面的技术和策略,包括选择合适的存储系统、实施分层策略、保障数据安全、优化数据分析性能以及应对业务挑战。这些实践为企业的大数据管理提供了宝贵的参考。

    企业大数据云平台功能优化方案.pdf

    总结,企业大数据云平台的功能优化方案涵盖了从基础设施到上层应用的全方位改进,旨在提升服务质量、满足非功能性需求,并为未来的业务增长和变化做好准备。通过这一系列的优化措施,企业能够构建一个高效、稳定、...

    大数据存储及分层实践-9-4 海量物联网设备元数据存储引擎选型和演进.zip

    本主题将深入探讨"大数据存储及分层实践-9-4 海量物联网设备元数据存储引擎选型和演进",重点关注如何选择适合的存储引擎以及如何随着数据规模的增长进行技术演进。 首先,元数据存储引擎的选择需考虑以下几个关键...

    大数据技术在移动通信网络优化中的运用分析.docx

    1. 充分利用大数据的存储优势:优化数据存储方案,如采用分布式存储和云计算技术,提高数据处理效率,减轻单点存储压力。 2. 加强技术研发:加大对大数据技术的研发投入,提升数据处理、转换和分析的能力,以适应...

Global site tag (gtag.js) - Google Analytics