我是否在此 postgresql 查询中获取缓存数据?
Am I getting cached data in this postgresql query?
我希望这不是一个愚蠢的问题,也不是一个表述错误的问题。
出于我的代码的目的,我在 table 中使用 jquery、post 和 ajax 获取按钮的值,然后在代码的另一部分获取它。这是简单的解释。我很感激大家的关心,但不要质疑我为什么要这样做,因为这就是它的工作原理,我不会改变它。
现在的问题是,我最终通过 select 查询获得的数据只是那些在最后一次页面重新加载之前注册的数据。
如果您需要查看代码,这是 link 我之前关于同一问题的问题:
我想知道我获取此类数据的原因是否与缓存有关?
您的问题似乎是竞争条件而不是缓存问题。当 运行 2 个异步进程,其中 1 个 updating/inserting 而另一个正在读取时,很有可能 "read" 进程在数据提交之前开始读取。最好的解决方案是在“1 个线程”(同步)中执行更新和读取,其中更新和读取按特定顺序完成,并且保证更新在读取开始之前完成。
Postgres 并没有真正"cache" 以这种方式返回旧结果的数据,但永远不会返回未提交的结果——必须先提交更新,然后任何其他会话才能看到它们。
尽管我最初认为这是一个竞争条件(不错的建议),但它实际上是一个客户端/服务器端交互问题。
竞争条件可能会导致显示上一个结果,但不一定是上一个页面加载之前的结果。
但是,我发现 Joe Love 的回答非常有用,因为我以前没有听过/考虑过赛车条件。另外,说 postgres 并不是真正的 "cache" 数据
是有道理的
我希望这不是一个愚蠢的问题,也不是一个表述错误的问题。 出于我的代码的目的,我在 table 中使用 jquery、post 和 ajax 获取按钮的值,然后在代码的另一部分获取它。这是简单的解释。我很感激大家的关心,但不要质疑我为什么要这样做,因为这就是它的工作原理,我不会改变它。
现在的问题是,我最终通过 select 查询获得的数据只是那些在最后一次页面重新加载之前注册的数据。
如果您需要查看代码,这是 link 我之前关于同一问题的问题:
我想知道我获取此类数据的原因是否与缓存有关?
您的问题似乎是竞争条件而不是缓存问题。当 运行 2 个异步进程,其中 1 个 updating/inserting 而另一个正在读取时,很有可能 "read" 进程在数据提交之前开始读取。最好的解决方案是在“1 个线程”(同步)中执行更新和读取,其中更新和读取按特定顺序完成,并且保证更新在读取开始之前完成。
Postgres 并没有真正"cache" 以这种方式返回旧结果的数据,但永远不会返回未提交的结果——必须先提交更新,然后任何其他会话才能看到它们。
尽管我最初认为这是一个竞争条件(不错的建议),但它实际上是一个客户端/服务器端交互问题。 竞争条件可能会导致显示上一个结果,但不一定是上一个页面加载之前的结果。
但是,我发现 Joe Love 的回答非常有用,因为我以前没有听过/考虑过赛车条件。另外,说 postgres 并不是真正的 "cache" 数据
是有道理的