关于Postgresql实现内存表的体验

最近在关注如何在Postgresql实现内存表,我把之前的几种方式都测试了下。对之前的相关理解还是有问题的。
第一种是直接将采用操作系统挂载成ramfs或tmpfs两种方式,我使用下来感觉,基本操作都很快,唯一的问题就是当linux重启后,用Postgresql客户端登录后,出现这样的情况,如图:


另外我在使用ramfs的方式时,进行大量的写操作后,我突然kill掉Postgresql服务器后,再次启动会失败(相关描述在另一篇文章里)。

第二种pgfincore方式,当初想当然是实现了内存表,其实用过后感觉,也并不是完全的内存表的概念。它只是一个block块导入到内存的管理机制。我后来也仔细的看了下定义:

A set of functions to manage pages in memory from PostgreSQL
该工具只是提前将表的block块导入到内存中,完成了之前原始操作语句中的一个步骤。方便了一个操作(如select语句)直接在内存中进行处理(我测试过CRUD操作,都是正常的),目前的话,我暂时还没测试出来block块是否会移除,或者多久被移除(目前我测试Postgresql服务重启后,我查看过状态,发现pages_mem不是0,很奇怪)。

第三种unlogged特性,当初我想当然的认为是内存表了,因为创建这种表后,插入的速度特别快,后来仔细再看了一遍定义,发现并没有表明这种表会直接放在内存中,只是不写入wal里。纯粹是我的一厢情愿的看法。

总结下来发现,Postgresql目前还是没有内存表的概念,都是采用一种变通的方式。
内存表比较适合一种特殊场景,对数据要求不高的,也就是丢失了也没关系;另外就是数据生存周期不长,还有就是频繁的insert/delete/select操作(更多的是读),最常见的就是用户的登录状态管理。
这里还有有个教训,就是凡是相关技术都要自己亲自尝试下,才能把相关的概念理解更深刻和体验到不同的地方,而不是局限于表面。
我发现很多人讲技术知识点的时候,咋就跟网上介绍的差不多,但更深层次的内容,可不是网上介绍的这么简单,所以做技术的,千万别浮躁。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
基于Spring Boot的新鲜水果订购平台的设计与实现,涉及多个方面的内容。 首先,对于系统的设计,需要使用Spring Boot框架进行开发。可以使用Spring Boot的自动配置功能,来实现项目的快速开发和部署。同时,也需要使用Spring MVC框架,来实现前端页面的开发与后台业务逻辑的交互。 其次,需要设计数据库模型,来存储用户信息、水果信息、订单信息等相关数据。可以使用MySQL或者PostgreSQL等关系型数据库进行存储管理。同时,需要使用MyBatis等ORM框架,来实现Java类与数据库之间的映射关系。 在实现系统的具体功能方面,需要实现用户的注册、登录、浏览商品、下单等相关功能。可以使用Spring Security框架,来实现用户的权限管理和认证功能。同时,可以使用Redis等内存缓存技术,来提高系统的访问速度和性能。 在页面设计方面,需要实现用户友好的UI和交互体验。可以使用Bootstrap等前端框架,来实现页面的美化和设计。同时,也需要考虑多终端兼容和响应式布局等问题。 最后,在系统部署和维护方面,可以使用Docker等容器技术,来实现项目的轻量级部署和管理。同时,也需要定期对系统进行更新和维护,来保证系统的安全稳定运行。 综上所述,基于Spring Boot的新鲜水果订购平台,需要涉及到多个方面的设计与实现。需要考虑数据库模型设计、业务逻辑实现、前端页面设计、系统部署与维护等问题。同时,也需要关注系统的性能、安全和稳定运行等方面,以提供更好的用户体验和服务质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值