返回顶部
首页 > 资讯 > 数据库 >大数据批量键值查询怎样才会更快
  • 332
分享到

大数据批量键值查询怎样才会更快

大数据批量键值查询怎样才会更快 2016-08-06 17:08:08 332人浏览 猪猪侠
摘要

一般选择数据库来存放数据,并借助数据表的索引来加快检索速度。利用索引查找数据,即使数据总量达到有10亿,对于单条记录的查找效率大约在数十毫秒(复杂度为LogN)。但是,如果需要查询的键值很多,比如多达几千甚至几万的时候,如果每次都独立查找,

大数据批量键值查询怎样才会更快

一般选择数据库来存放数据,并借助数据表的索引来加快检索速度。利用索引查找数据,即使数据总量达到有10亿,对于单条记录的查找效率大约在数十毫秒(复杂度为LogN)。但是,如果需要查询的键值很多,比如多达几千甚至几万的时候,如果每次都独立查找,那读取和比较也会累积到几万甚至几十万次,时间延迟由此也会涨到几十分钟甚至小时级别,这时候再简单地使用数据库索引对于用户体验必然是难以容忍的了。

比如下面这样的查询:

结构如下:

字段 类型 备注
id long 1000000000001开始自增
data string 随机字符串(长度为 180 字节)

对这样结构的6亿条数据,从中取1万个随机id对应的记录,用oracle大约就需要120 秒了。

使用的sql大概这样:select * from testdata where id in (…)

另外由于in中的个数最大1000个,还需要多次查询后的结果再合并,处理起来也比较麻烦。

同样的数据,用集算器来处理,代码简单且查找高效,看下面这个例子:

  A B
1 =file("testdata.ctx").create() //打开组表文件testdata.ctx
2 =A1.index@3(id_idx) //加载三级索引
3 =keys //待查找的随机键值序列
4 =A1.icursor(;A3.contain(id),id_idx) //利用组表索引id_idx查找

这里使用了集算器组表功能,基于高性能索引和批量键值查找,可以有效地应对这种场景。该场景下,集算器查询仅用了20秒,相比Oracle120秒提升了6倍。感兴趣可以参考:性能优化教案—查找

集算器还很容易嵌入到Java应用程序中,Java如何调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器

您可能感兴趣的文档:

--结束END--

本文标题: 大数据批量键值查询怎样才会更快

本文链接: https://lsjlt.com/news/6705.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 大数据批量键值查询怎样才会更快
    一般选择数据库来存放数据,并借助数据表的索引来加快检索速度。利用索引查找数据,即使数据总量达到有10亿,对于单条记录的查找效率大约在数十毫秒(复杂度为LogN)。但是,如果需要查询的键值很多,比如多达几千甚至几万的时候,如果每次都独立查找,...
    99+
    2016-08-06
    大数据批量键值查询怎样才会更快
  • 大数据批量键值怎么快速查询
    大数据批量键值怎么快速查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一般选择数据库来存放数据,并借助数据表的索引来加快检索速度。利用索引查找数据,即使数据总量达到有10...
    99+
    2023-06-03
  • 大数据分组怎样才会更快
    分组是数据库的常见运算,无论数据如何准备,通常都需要将所有数据遍历。建立索引这时是不起作用的,存储格式才是决定遍历效率的主要因素。数据库中数据的存放虽然是二进制格式的,但普遍IO性能差,库内遍历快,外部取数都很慢。 下面用Oracle来举...
    99+
    2018-11-16
    大数据分组怎样才会更快
  • sql怎么快速查询大量数据
    要快速查询大量数据,可以采取以下几种方法: 使用索引:确保在查询中使用到的列上建立了合适的索引,这样可以大大提高查询的速度。 ...
    99+
    2024-04-09
    sql
  • Java导出大批量数据(分批查询导出篇)
    上篇文章介绍了java导出文件格式篇xls,xlsx,csvhttps://blog.csdn.net/weixin_56567361/article/details/126640185 本篇介绍下 大批量数据的导出思路和方法 导出数据慢的...
    99+
    2023-09-10
    java 开发语言 sql mysql
  • MySQL中主键使用数字还是uuid会让查询更快
    这篇文章主要介绍MySQL中主键使用数字还是uuid会让查询更快,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在实际开发中mysql的主键不能重复,可能会采用主键自增,为了防止主键重复也可能会采取雪花算法之类的算法保...
    99+
    2023-06-20
  • MySQL数据查询太多会怎么样
    这篇文章主要介绍“MySQL数据查询太多会怎么样”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL数据查询太多会怎么样”文章能帮助大家解决问题。主机内存只有1...
    99+
    2024-04-02
  • Java使用多线程做批处理(查询大量数据)
    Java使用多线程做批处理(查询大量数据) Java使用多线程做批处理(查询大量数据) Java使用多线程做批处理(查询大量数据)前言背景Java使用多线程的条件操作流程 前言背...
    99+
    2023-09-01
    java jvm 开发语言
  • mysql大数据量查询怎么优化
    在处理大数据量查询时,可以通过以下几种方法来优化查询性能: 使用合适的索引:通过在查询字段上创建索引,可以大大减少查询所需的时间...
    99+
    2024-04-12
    mysql
  • SAP怎么实现批量查询序列号数据
    本篇内容介绍了“SAP怎么实现批量查询序列号数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!事务代码IQ09,输入物料号等信息,执行,修改...
    99+
    2023-06-05
  • SQLServer数据库怎么远程查询并批量导入数据
    本篇内容主要讲解“SQLServer数据库怎么远程查询并批量导入数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQLServer数据库怎么远程查询并批量导入...
    99+
    2024-04-02
  • oracle怎么查询某张表的数据量大小
    要查询表的数据量大小,可以使用以下SQL查询: SELECT SUM(bytes)/1024/1024 AS &qu...
    99+
    2024-03-07
    oracle
  • MySQL中怎样查看数据库表容量大小
    这期内容当中小编将会给大家带来有关MySQL中怎样查看数据库表容量大小,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  information_schema简介  在My...
    99+
    2024-04-02
  • laravel中怎么进行高效的大量数据查询
    这篇文章主要讲解了“laravel中怎么进行高效的大量数据查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“laravel中怎么进行高效的大量数据查询”吧!一、Eloquent分块查询在使用...
    99+
    2023-07-05
  • 报表连 hive,数据量比较大,怎么分页查询?
    Hive 提供了类似 Oracle 的 rownum 机制,类似这样(效率比较差): select * from (select row_number() over (order by create_time d...
    99+
    2015-05-22
    报表连 hive,数据量比较大,怎么分页查询?
  • 批量更新几百万条数据,速度太慢怎么办?怎样做到优化?
    表信息: CREATE TABLE `Users` (   `UserID` int NOT NULL AUTO_INCREMENT,   `UserName` varchar(20) NOT NULL,   `Age` int...
    99+
    2020-06-29
    批量更新几百万条数据,速度太慢怎么办?怎样做到优化?
  • 怎样从生产数据库中获得想要的查询语句,把结果集批量插入到磁盘txt文件中
    第一步:建立存储过程      实现传入参数,生成结果到磁盘的txt文件中;USE [XXXXX]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIF...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作