linux - 在一个大的简单的 id 表上读取的最快解决方案(非关系)
问题描述
我们在 adtech 中,我们需要在一个非常简单的 id 匹配表中找到更快的解决方案(并且 CPU/RAM 消耗最便宜)来读取/写入(到数十甚至数百 K IOPS):
我们也对表模式有疑问:
每个合作伙伴一条线路
internal_id (uuid v4) | partner_id (int) | external_id (TEXT, 不控制长度) |
---|---|---|
923a01d3-c480-4a80-92f1-4e11dfba6ed3 | 24 | XzaV1lVbLoEAAFJkOQkAAAC5&1111 |
923a01d3-c480-4a80-92f1-4e11dfba6ed3 | 35 | 4420763609654968920 |
04643add-bc2b-4ade-be71-c1a2ad3d4a41 | 24 | X-hgv2QiDJM4LUrlMLuTtwAA&1114 |
04643add-bc2b-4ade-be71-c1a2ad3d4a41 | 35 | 244500741791779031 |
... | ... | ... |
或者
每个合作伙伴一栏
internal_id (uuid v4) | partner_24 (TEXT, 不控制长度) | partner_35 (TEXT,不控制长度) |
---|---|---|
923a01d3-c480-4a80-92f1-4e11dfba6ed3 | XzaV1lVbLoEAAFJkOQkAAAC5&1111 | 4420763609654968920 |
4c1aeb2a-0773-4c7e-a025-e3c10c662358 | X-hgv2QiDJM4LUrlMLuTtwAA&1114 | 244500741791779031 |
... | ... | ... |
规模非常大(数十亿的 internal_id),每天都在变大。
我们不需要 100% 的数据准确性,我们只搜索读取的速度,写入可以是异步的或具有小的延迟。
解决方案
您是否尝试过 Redis 或 memcached?内存中的 hashmap 可能更快,但分布式查找更难实现
推荐阅读
- java - 输出是23。请解释
- android - QT Android Gstreamer RTMP流管道绿线故障
- npm - npm install 给出 '.' 不被识别为内部或外部命令、可运行程序或批处理文件。错误
- flutter - Flutter 从小部件外部更改 PageView 页面
- python-multiprocessing - 通过 Mac 终端访问 Python 共享内存
- yaml - Prometheus Kubernetes 示例的 YAML 缩进和解释
- pipe - 你能认为命名管道和匿名管道是异步的吗?
- c++ - 保存我从另一个类获得的列表的 const 引用不起作用
- javascript - 在 THREE.js 中一起渲染多个框
- xml - ConstraintLayout:如何在 ConstraintLayout 初始高度环绕中设置子项的最大高度?