影音先锋精品视频在线观看_国产午夜免费的AV_国产一区二区三区性爱视频电_国产日韩欧美一区二区东京热免费_国产欧美日韩在线观看完整版_亚洲最新小视频在线观看_国产女同一区二区在线观看_欧美自拍偷拍一区二区_国产高清精品一区二区不卡_欧美日韩视频一区二区在线RIAV

互聯(lián)網(wǎng)+內(nèi)容
134-1887-2552

MongoDB如何正確中斷正在創(chuàng)建的索引詳解

標簽:深圳網(wǎng)站建設(shè)公司2020-12-26 1987

這篇文章主要給大家介紹了關(guān)于MongoDB如何正確中斷正在創(chuàng)建的索引的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

我們在使用 MongoDB 的時候,會出現(xiàn)需要給一個已經(jīng)存在的大集合的某個字段增加索引的情況。

索引分為前臺索引和后臺索引,對應(yīng)到 pymongo 中創(chuàng)建索引的代碼:

import pymongo
handler = pymongo.MongoClient().yourdb.yourcol
# 前臺索引
handler.create_index(‘字段名‘)
# 后臺索引
handler.create_index(‘字段名‘, background=True)

如果集合里面有很多數(shù)據(jù),并且你使用的是前臺索引,那么此時,創(chuàng)建索引會把這個集合鎖起來,所有對這個集合的寫入操作都會掛起。直到索引創(chuàng)建完成為止。如果使用的是后臺索引,那么創(chuàng)建索引的過程不會影響數(shù)據(jù)寫入。

但有時候,本來想創(chuàng)建后臺索引,卻忘記加 background=True參數(shù)。此時怎么辦?因為大集合創(chuàng)建索引有時候可能需要好幾個小時,掛起的寫入數(shù)據(jù)會堆積在內(nèi)存里面,把內(nèi)存撐爆。

此時,千萬不要重啟 MongoDB,因為重啟以后,之前沒有完成的索引創(chuàng)建操作,依然會自動啟動繼續(xù)創(chuàng)建。

正確的做法是殺掉創(chuàng)建索引的進程。

此時,我們可以在 MongoDB Shell 或者 Robo 3T里面操作。

這里以 Robo 3T為例,首先打開對應(yīng)的集合,如下圖所示:

然后把命令欄里面的內(nèi)容修改為:

1db.currentOp()

返回的內(nèi)容如下圖所示:

創(chuàng)建索引的進程,可以在參數(shù)里面看到類似于

1"lockType": "write"

這樣的字字段。在它附近,可以找到一個字段叫做 opid。

然后在命令欄輸入命令:

1db.killOp(opid)

殺掉進程。

然后重新創(chuàng)建后臺索引即可。

到此這篇關(guān)于MongoDB如何正確中斷正在創(chuàng)建的索引的文章就介紹到這了,更多相關(guān)MongoDB中斷正在創(chuàng)建的索引內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持自由創(chuàng)想!

微信分享領(lǐng)紅包!
相關(guān)閱讀 / 返回上一頁
主站蜘蛛池模板: 老河口市| 汾阳市| 大埔县| 宁晋县| 南投市| 阳城县| 邯郸市| 岳阳县| 绥芬河市| 靖边县| 金乡县| 光山县| 休宁县| 元朗区| 汝阳县| 巴林左旗| 兴仁县| 黄浦区| 新乡市| 璧山县| 姜堰市| 施甸县| 徐州市| 连山| 垦利县| 山阳县| 土默特左旗| 治多县| 鲁山县| 利津县| 漳平市| 徐闻县| 吉木萨尔县| 桓台县| 天台县| 会昌县| 湖北省| 姚安县| 墨玉县| 阜城县| 庆城县|