求[读多写少、大字段]数据库技术推荐 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OysterQAQ
V2EX    数据库

求[读多写少、大字段]数据库技术推荐

  •  1
     
  •   OysterQAQ 2023-10-30 20:39:28 +08:00 1887 次点击
    这是一个创建于 716 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用于存储样本的特征,几千维的浮点数据和文本数据。仅按照 id 查询,修改很少。目前用 mysql 存储( longblob ),由于近期有图的需求,需要在一个请求里一次性查几百个 id ,耗时在 1min 左右。

    !-- SOL tip topic -->
    26 条回复    2023-10-31 16:56:27 +08:00
    adoal
        1
    adoal  
       2023-10-30 20:41:43 +08:00
    有没有可能耗时不在查询,而在大字段内容的传输
    OysterQAQ
        2
    OysterQAQ  
    OP
       2023-10-30 20:43:31 +08:00
    @adoal 我觉得可能是 longblob 的页读取吧,传输这个都在 local 上,应该不是问题
    lovelylain
        3
    lovelylain  
       2023-10-30 21:04:47 +08:00 via Android
    仅按照 id 查询,是主键或唯一索引 id 吗,是的话才查几百个,不至于会超过 1min 吧
    OysterQAQ
        4
    OysterQAQ  
    OP
       2023-10-30 21:15:15 +08:00
    @lovelylain 是主键 先通过 nebula 进行随机游走得到 id 大概需要 1.2s 之后就是通过 id 到 mysql 查询了,其实测试了我十个请求一起也是 1min 左右平均耗时,在想要不要试试做个从库或者是找个别的小心的 btree 数据库同步过去
    chendy
        5
    chendy  
       2023-10-30 21:54:24 +08:00
    看描述有点离谱
    看需求可能直接用文件更合适
    OysterQAQ
        6
    OysterQAQ  
    OP
       2023-10-30 22:14:10 +08:00
    @chendy 说大不大 说小也不小 就是图片的 2000 维的 float 特征和一些小型文本特征,mysql 没有数组 只能用 longblob 存(主要这特征其实是三个部分组成,所以三个 longblob 字段) 也到不了文件那个级别
    spediacn
        7
    spediacn  
       2023-10-30 22:14:17 +08:00 via iPhone
    查库干嘛,按 id 前两位+id 存为文件是不是更合适,磁盘索引速度远大于数据库检索速度的。如果数据有冷热之分就上个高速缓存来做热数据检索即可
    OysterQAQ
        8
    OysterQAQ  
    OP
       2023-10-30 22:16:28 +08:00
    @spediacn 在数据库里统一一些,千万条数据放文件也太怪了,而且没有到文件的体积
    KagurazakaNyaa
        9
    KagurazakaNyaa  
       2023-10-30 22:34:36 +08:00
    如果只查 id 不查别的字段,你这个比较适合用 mongo 或者 es 这种文档数据库
    OysterQAQ
        10
    OysterQAQ  
    OP
       2023-10-30 22:54:47 +08:00 via iPad
    @XiLingHost 我想找一个 btree 存储模型的轻量 kv 数据库,感觉更加合适
    KagurazakaNyaa
        11
    KagurazakaNyaa  
       2023-10-30 23:05:28 +08:00
    @OysterQAQ 那其实这种需求自己实现一个存储服务也许性能会更好
    kuituosi
        12
    kuituosi  
       2023-10-30 23:16:23 +08:00
    明显文件啊
    sujin190
        13
    sujin190  
       2023-10-30 23:26:50 +08:00 via Android
    可以把 id 存库,查询和管理迁移方便,数据确实还是存文件更好,想要速度多机并行化就是了,缓存也更容易做,还可以用 hbase 之类的分布式存储,oss 服务之类的,扩展能力安全性效率都更好
    R4rvZ6agNVWr56V0
        14
    R4rvZ6agNVWr56V0  
       2023-10-30 23:36:08 +08:00
    尝试一下分表呢
    LUO12826
        15
    LUO12826  
       2023-10-30 23:45:27 +08:00
    你想要的东西是不是叫“向量数据库”。可以搜一下,已经有一些产品了
    mysunshinedreams
        16
    mysunshinedreams  
       2023-10-31 05:58:15 +08:00
    ID->对象存储唯一标识,东西存对象存储上面
    OysterQAQ
        17
    OysterQAQ  
    OP
       2023-10-31 08:15:53 +08:00 via iPhone
    @LUO12826 不是这个,这个我在用 milvus ,主要是反过来用向量查 id 的
    lsk569937453
        18
    lsk569937453  
       2023-10-31 09:06:20 +08:00
    其实 16 楼已经给出答案了,就是 mysql 只存储标识,id+标识。一般不会把二进制数据存储在 mysql 中。

    还有我怀疑你这个耗时 1min 钟,是传输的数量太大导致的,毕竟 mysql 也要把数据从磁盘读出来。
    Desdemor
        19
    Desdemor  
       2023-10-31 09:14:53 +08:00
    clickhouse 贼快
    8355
        20
    8355  
       2023-10-31 09:21:02 +08:00
    如果可以格式化成 json 推荐 MongoDB
    如果是大文本推荐对象存储
    815979670
        21
    815979670  
       2023-10-31 09:55:38 +08:00
    @Desdemor ClickHouse 快 但应该不符合 op 的需求,ClickHouse 是做 OLAP 场景的 如果是条数多还行,但是单条的内容多 可能不是很合适
    OysterQAQ
        22
    OysterQAQ  
    OP
       2023-10-31 10:05:04 +08:00
    @8355 我不知道算不算大文本 三个 longblob 字段分别是 1024 维的 float 数组 512 维 float 数组 256 维 flost 数组

    @Desdemor olap 适合数据聚合分析而不是单条查询吧
    MidGap
        23
    MidGap  
       2023-10-31 11:21:53 +08:00
    想判断是否是字段太大,这个思路靠谱么?建一张一样的表,存小的数据同样的查询比较一下,感觉光“觉得”没法找到有效解决办法呢~
    flmn
        24
    flmn  
       2023-10-31 11:54:28 +08:00
    这种场景,很明显是 HBase 最适合的。

    但是 HBase 的开销不小。

    我想问下,在一个请求里一次性查几百个 id ,是查所有维度,还是单个或者几个维度?
    thevita
        25
    thevita  
       2023-10-31 14:53:04 +08:00
    数千个维度 大概 数 K-数十 k, 典型小对象,存取, 数百个 也就 几十 MB ,mysql 要一分钟, 应该就是 io 次数多一点.
    用 object store 或者 kv ?

    好处在于有现成的云或分布式方案,对 ssd 优化也好,能承担更大量的并发读

    再,看读上是否有写 固定模式,可以适当做一些读优化设计(毕竟说 读多写少)
    charslee013
        26
    charslee013  
       2023-10-31 16:56:27 +08:00
    > 主要是反过来用向量查 id 的 #22

    有个疑惑,为什么不在 Milvus 新增一个 ID 字段用来映射 mysql 数据库?

    在 milvus 进行向量查询之后根据返回的 ID 字段来反向查询 mysql 数据库
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3361 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:43 PVG 12:43 LAX 21:43 JFK 00:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86