V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
dfgxcvbcv
V2EX  ›  数据库

有没有可以像 PostgreSQL 那样用 SQL 命令操作但像 Redis 一样把数据保存在 RAM 中的数据库?

  •  
  •   dfgxcvbcv · Jun 22, 2022 · 3143 views
    This topic created in 1414 days ago, the information mentioned may be changed or developed.
    18 replies    2022-07-01 10:32:16 +08:00
    westoy
        1
    westoy  
       Jun 22, 2022   ❤️ 4
    sqlite :memory:
    CEBBCAT
        2
    CEBBCAT  
       Jun 22, 2022
    建议楼主说说是想解决什么问题
    mlboy
        3
    mlboy  
       Jun 22, 2022   ❤️ 1
    mysql 就能, 想知道怎么弄? 引擎了解一下.
    fox0001
        4
    fox0001  
       Jun 22, 2022 via Android
    建立个 ramdisk ,把 PostgreSQL 的数据文件部署上去…
    seanzxx
        5
    seanzxx  
       Jun 22, 2022
    楼主是不是跑单元测试?
    dayeye2006199
        6
    dayeye2006199  
       Jun 22, 2022
    ramdisk + 1
    但是数据持久化,如何备份之类就得自己处理了。

    也可以考虑 FDW 这个技术路线: https://github.com/pg-redis-fdw/redis_fdw

    也有只利用 postgres 做 query 层的,实际存储和计算后端都是其他数据库的: https://hydras.io/
    bthulu
        7
    bthulu  
       Jun 22, 2022
    mysql+1
    fengche361
        8
    fengche361  
       Jun 22, 2022
    h2
    v2er4241
        9
    v2er4241  
       Jun 22, 2022
    我昨天做单元测试时,刚查到的 `:memory:` https://docs.microsoft.com/zh-cn/dotnet/standard/data/sqlite/in-memory-databases
    Saxton
        10
    Saxton  
       Jun 22, 2022
    mysql 把表引擎换一下就行了
    shakoon
        11
    shakoon  
       Jun 22, 2022
    oracle 有 database in memory 功能,降一个级别那有 global temporary table 功能。前者是全内存,后者是部分在内存中。
    lower
        12
    lower  
       Jun 22, 2022
    正经商业软件应该不会这么搞吧,数据都到内存中了,kv 应该最直接,不用搞 sql 那么麻烦的一套东西了;
    hyqCrystal
        13
    hyqCrystal  
       Jun 22, 2022
    h2
    nothingistrue
        14
    nothingistrue  
       Jun 22, 2022
    这个叫做内存数据库,基本上是个数据库都提供专门的内存数据库(可持久化的)。只不过,因为内存库有好多功能限制,所以只会用在超高实时性能要求的地方(比如电信实时计费系统)。平常的业务系统,不管是 CRUD 还是领域驱动还是各种高级设计,都没有那么高的实时性能要求,基本用不到内存库。

    还有另一种不面向持久化的内存数据库,比如 H2 ,功能上跟普通数据库差不多,但不管性能不管数据安全,它的主要目的是给单元测试或者其他临时使用数据库的场景提供一个临时的、内嵌的数据库。
    pmx1990
        15
    pmx1990  
       Jun 22, 2022
    同样需求,现在 sqlite 可能有点吃力,主要是类似有 watch etcd 然后写到 map 中,
    复杂查询 代码实现起来很麻烦别扭,
    有类似 presto 可以自己开发 connector 这种,可以搞,不过,我项目 golang 不太好
    Aksura
        16
    Aksura  
       Jun 23, 2022
    ecloud
        17
    ecloud  
       Jun 23, 2022
    mysql 和 postgresql 都有内存表,你直接用不就得了
    remember5
        18
    remember5  
       Jul 1, 2022
    h2
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1053 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 17:35 · PVG 01:35 · LAX 10:35 · JFK 13:35
    ♥ Do have faith in what you're doing.