代码之家  ›  专栏  ›  技术社区  ›  Chris

PostgreSQL可以与磁盘上的数据库一起使用吗?

  •  0
  • Chris  · 技术社区  · 15 年前

    目前,我有一个应用程序在嵌入式模式下使用Firebird连接到一个相对简单的数据库,该数据库作为文件存储在硬盘上。我想切换到使用PostgreSQL来做同样的事情(是的,我知道这是过度杀戮)。我知道PostgreSQL不能在嵌入式模式下运行,这很好——我可以让服务器进程继续运行,这对我来说没问题。

    我正在尝试找出一个连接字符串,它将实现这一点,但没有成功。我尝试了以下变化:

    jdbc:postgresql:c:\mydb.fdb
    jdbc:postgresql://c:\mydb.fdb
    jdbc:postgresql://localhost:[端口]/c:\mydb.fdb

    但似乎什么都没用。波斯特雷克尔 directions 不要包括这个例子。这是可能的吗?

    3 回复  |  直到 15 年前
        1
  •  0
  •   AngerClown    15 年前

    Postgres数据库不是单个文件。在数据库的目录中,每个表和数据目录中的每个索引都有一个文件。所有文件将以db/table/index的对象ID(OID)命名。

    JDBC URL指向数据库名称,而不是任何特定文件: jdbc:postgresql:foodb(隐含localhost)

    如果“磁盘的行为类似于内存”,则表示数据库只存在于程序的生命周期中,那么就没有理由不能在程序启动时创建数据库,并在程序退出时将其删除。注意,这只是创建数据库的DDL,而不是通过init db程序创建data dir。您可以连接到默认的“Postgres”数据库,创建数据库,然后连接到它。

        2
  •  1
  •   Michael Dillon    15 年前

    你可以耍花招。如果您在unixlike系统上运行postgresql,那么您应该能够创建一个ramdisk并将其用于数据库存储。这是一个非常好的步骤 guide for RAMdisks on Linux .

    不过,一般来说,我建议在RAM类型的应用程序中对SQL数据库使用sqlite。

        3
  •  0
  •   Niels Thomsen    15 年前

    Firebird 2.1以后版本支持全局临时表,这些临时表只在数据库连接期间存在。

    语法类似于创建全局临时表…提交时保留行