热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

大数据量简单数据查询设计思考

今天去面试一家企业,出了一道题,说他们的数据格式是以不同企业、产品类型、产品、批次、编码的形式需要存储,但是量级在10亿以上。问什么样的方式进行检索最快。希望提升性能。另外,支持多种角度,

      今天去面试一家企业,出了一道题,说他们的数据格式是以不同企业、产品类型、产品、批次、编码的形式需要存储,但是量级在10亿以上。问什么样的方式进行检索最快。希望提升性能。另外,支持多种角度,比如按企业、按产品类型、按具体的编码等角度查询。都希望尽快出结果。

      对于这种结构明晰的数据,我觉得是有一定的规则可循的。比如按照以下格式:

      企业(8位码)+产品类型(6位码)+产品编号(8位码)+批次(5位吗)+编码(15~35位码),这样可以对所以数据进行规范化。并对这些数据进行索引。

      如果是按照企业查询,那么仅对前八位进行查询即可。当然对所有企业也会有单独的存储或者建立单独的索引。

      如果是知道企业和产品,则可以定位前22位。当然对于产品类型与产品的关联也会进行单独的索引。

      如果知道具体的编码,则更方便,直接查询23位以后的若干位。

      然后将定义规则的统一码,放到Cassandra中,并以统一码为key值。那么定位起来是相当快的。Cassandra对于一次写入,多次读取的场景是很适合的。并且数量级在50亿以下。性能上没有问题,facebook做过测试。在此量级下,性能是很快速的。

      在Cassandra的value中,可以存储一定的查询信息,也可以存储对应具体的存储位置。这样更利于具体数据的定位。

      具体数据的存储,可以按照横纵向划分后的固定格式,存储到关系型数据库中。

      当然,对于数字的某个区间,应该还有更快的查询方法,还有优化的潜质。欢迎大家拍砖。


推荐阅读
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • andr ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • MongoDB集群配置:副本集与分片详解
    本文详细介绍了如何在MongoDB中配置副本集(Replica Sets)和分片(Sharding),并提供了具体的步骤和命令,帮助读者理解并实现高可用性和水平扩展的MongoDB集群。 ... [详细]
  • 本文由瀚高PG实验室撰写,详细介绍了如何在PostgreSQL中创建、管理和删除模式。文章涵盖了创建模式的基本命令、public模式的特性、权限设置以及通过角色对象简化操作的方法。 ... [详细]
  • openGauss每日一练:第6天 - 模式的创建、修改与删除
    本篇笔记记录了openGauss数据库中关于模式(Schema)的创建、修改和删除操作。通过这些操作,用户可以更好地管理和控制数据库对象。实验环境为openGauss 2.0.0,并使用由墨天轮提供的线上环境。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 访问一个网页的全过程
    准备:DHCPUDPIP和以太网启动主机,用一根以太网电缆连接到学校的以太网交换机,交换机又与学校的路由器相连.学校的这台路由器与一个ISP链接,此ISP(Intern ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
author-avatar
hfy2409553
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有