Ruby on rails Rails数据库与多个工作人员的性能
我正在开发一个像搜索引擎一样工作的应用程序,它一直有工作人员在后台搜索web并将结果添加到结果表中 虽然一切都很完美,但最近我开始在尝试浏览、编辑或删除结果时获得巨大的响应时间。我的猜测是,Results表一直被不断添加新数据的工作人员锁定,这意味着web请求必须等待表被释放 但是,我无法找到一种方法来降低结果表上的负载,并获得更快的web请求响应时间。有没有人必须处理这样的事情 搜索机器人不断地阅读和添加新内容,在找到新内容时会添加新结果。我在想,也许在搜索后只将大部分结果添加到数据库中会有所帮助,或者会让事情变得更糟,因为这需要更长的时间 无论如何,我在这里不知所措,如果有任何帮助或想法,我将不胜感激Ruby on rails Rails数据库与多个工作人员的性能,ruby-on-rails,database,performance,postgresql,heroku,Ruby On Rails,Database,Performance,Postgresql,Heroku,我正在开发一个像搜索引擎一样工作的应用程序,它一直有工作人员在后台搜索web并将结果添加到结果表中 虽然一切都很完美,但最近我开始在尝试浏览、编辑或删除结果时获得巨大的响应时间。我的猜测是,Results表一直被不断添加新数据的工作人员锁定,这意味着web请求必须等待表被释放 但是,我无法找到一种方法来降低结果表上的负载,并获得更快的web请求响应时间。有没有人必须处理这样的事情 搜索机器人不断地阅读和添加新内容,在找到新内容时会添加新结果。我在想,也许在搜索后只将大部分结果添加到数据库中会有所
我正在使用RoR 2.3.8,并使用PostgreSQL在Heroku上托管我的应用程序,请尝试以下命令。由于您只使用后台工作人员添加新内容,因此我假设在浏览/编辑/删除时不会发生锁定冲突。请尝试该命令。由于您只使用后台工作人员添加新内容,因此我假设在浏览/编辑/删除时不会发生锁定冲突。您可能希望在数据库前面放置缓存。在Heroku上,您可以使用memcached作为缓存存储
这将减轻数据库读取的负载。您甚至可以让您的搜索机器人在添加新内容时更新缓存,这样您就可以使用很长的过期时间,并且您的前端Rails应用程序很少(如果有)直接命中数据库进行简单读取。您可能希望在数据库前面放置缓存。在Heroku上,您可以使用memcached作为缓存存储
这将减轻数据库读取的负载。您甚至可以让您的搜索机器人在添加新内容时更新缓存,这样您就可以使用很长的过期时间,并且您的前端Rails应用程序很少(如果有)直接命中数据库进行简单读取。PostgreSQL不会锁定表进行读取或写入。开始记录您的查询并尝试了解发生了什么。猜测没有帮助,你必须深入研究 要检查当前活动,请执行以下操作:
SELECT * FROM pg_stat_activity;
PostgreSQL不会为读取或写入锁定表。开始记录您的查询并尝试了解发生了什么。猜测没有帮助,你必须深入研究 要检查当前活动,请执行以下操作:
SELECT * FROM pg_stat_activity;