在我的项目中,有一个表格拥有23百万条记录和6个字段被索引了。
之前我尝试为Thinking Sphinx搜索添加增量列,但这会导致整个数据库锁定一个小时。之后,当文件被添加后,我尝试重建索引,但是以下查询导致数据库锁定大约4小时:
之前我尝试为Thinking Sphinx搜索添加增量列,但这会导致整个数据库锁定一个小时。之后,当文件被添加后,我尝试重建索引,但是以下查询导致数据库锁定大约4小时:
"update user_messages set delta = false where delta = true"
为了使服务器正常运行,我从数据库转储中创建了一个新的数据库,并将其提升为数据库,这样服务器就可以启动。
现在我想在没有表锁的情况下向我的表中添加增量列,这是否有可能?并且一旦添加了列delta
,为什么会在运行索引重建命令时执行上述查询并阻止服务器运行那么长时间?
附:我使用Postgres和ika db模型在Heroku上运行。
INSERT SELECT
和TRUNCATE
之间的时间间隔内插入的行会丢失吗? - origaminal