数据库是 PostgreSQL ,程序一共有三个线程在操作数据库,两个线程不断执行 Insert 和 Update 操作,一个线程不断执行 Select 操作。
如果操作比较频繁,就会出现 Insert 和 Select 都失败的情况。
搜索了一番发现是因为没有事务隔离导致的冲突(对,我对数据库基本一无所知 (*´Д`*)
参考了 事务隔离,对涉及 Insert 和 Update 的操作开头和结尾处分别加入了 BEGIN 和 COMMIT ,问题就没有了。
现在想问的是,我这种解决方法是正确的吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.