PostgreSQL相当于MySQL内存表?

Ell*_* B. 33 mysql postgresql temp-tables

PostgreSQL有相同的MySQL 内存表吗?

这些MySQL内存表可以跨会话持久化(即,与会话结束时丢弃的临时表不同).我无法找到任何可以做同样事情的PostgreSQL.

ale*_*oot 38

不,目前它们在PostgreSQL中不存在.如果你真的需要一个内存表,你可以创建一个RAM磁盘,为它添加一个表空间,并在其上创建表.

如果您只需要在不同会话之间可见的临时表,则可以使用UNLOGGED.这些不是真正的内存表,但当表数据明显小于系统RAM时,它们的行为会出乎意料地类似.

全局临时表将是另一种选择,但在9.2版本的PostgreSQL中不受支持(参见注释).

  • 我们一直在谈论在9.3中添加全局临时表作为新功能.在现有版本中,关键字被接受,但被忽略.你在PostgreSQL中最接近的是一个`UNLOGGED`表.http://www.postgresql.org/docs/current/interactive/sql-createtable.html (4认同)

Mad*_*nan 13

回答了一个四年前的问题,但是现在它仍然是Google搜索结果的最高点.

没有内置的方法来在内存中缓存完整的表,但有一个扩展可以做到这一点.

在内存列存储是一个库,它作为一个扩展插件,也作为一个柱状存储和执行引擎.你可以在这里参考文档.有一个加载函数,你可以用来将整个表加载到内存中.

优点是表存储在postgres shared_buffers中,因此在执行查询时,postgres立即感知页面在内存中并从那里获取.

缺点是shared_buffers实际上并不是设计为以这种方式运行并且可能发生不稳定(通常不会发生),但是你可以在具有这种配置的辅助集群/机器中使用它来保证安全.

关于postgres和shared_buffers的所有其他常见警告仍然适用.