目前我正在考虑添加一个json数组列(我正在使用postgres),只是将对象的日志消息引入此属性。我想记录进度(该对象是一个执行很多东西的导入报告,需要一段时间,因此了解当前正在发生的事情 - 导入了多少行,已经规范化了多少行等等 -
另一种选择是添加一个允许您在视图中查看流式传输的宝石,但我认为这不是很有用,因为我正在寻找的是我能看到的历史特定对象。
答案 0 :(得分:0)
使用json
列或json[]
(json
的PostgreSQL数组)是一个非常错误的日志记录。
每次更新时,必须在内存中读取,修改整个列内容,然后再将其全部写出。
相反,创建一个用于此类对象的日志的表,记录表的FK和每个条目的时间戳。为每个日志条目插入一行。
顺便说一句,如果报告在单个事务中运行,其他客户端将无法看到任何日志行,直到整个视图提交,在这种情况下,它不会对进度监视有好处,但也不会你原来的想法。您需要改为使用NOTICE
消息。