zoukankan      html  css  js  c++  java
  • 3亿(int)数据-2亿(int)数据 求差集

    两个大文本,每行一条int数据

    3亿(int)数据-2亿(int)数据 求差集

    原始(粗暴)办法

    1redis set 或类似方案
    本地内存 cpu都撑不住

    2持久化两张表 sql join
    mysql join是两层暴力for的性能太差,还是单线程的
    sqlserver 三种join方式,1两层for,2有序列优化join,3 hash join,该场景可用有序列进行join(int型数 hash join没啥意义),性能远胜两层暴力for,另外sqlserver多线程计算优化
    orcal 和sqlserver类似 细节或有区别,不是很熟悉,反正比mysql强

    3 sql insert文本1,遍历文本2 update 再select


    sqlserver 本机mac需要 https://hub.docker.com/r/microsoft/mssql-server-linux

    4hadoop map/reduce 本身自带sort,说到底和sqlserver join原理差不多,同时用到了多机,多进程/线程

    4linux命令 grep sort 之类

    5bitmap

    直接用redis 作位运算 代码都不用写多少

    大量int型数据,交差并都都优先考虑bitmap

    用redis的 bit 有位数限制

    offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)。

    单key放不下,就多用几个

    redis [key] = val/(2^32)  

    [key] [offset] = val%(2^32) 

    setbit [key] [offset] 1

  • 相关阅读:
    【go语言】Windows下go语言beego框架安装
    分页
    MongoDB用户与权限管理
    MongoDB安装在Centos7下安装
    centos7安装mysql5.7.33 tar包方式
    文件路径分隔符
    python之批量打印网页为pdf文件
    Python驱动SAP GUI完成自动化(五)
    动态内存与智能指针
    关联容器
  • 原文地址:https://www.cnblogs.com/zihunqingxin/p/7338168.html
Copyright © 2011-2022 走看看