MongoDB加索引導致鎖庫的問題記錄
1、問題描述
執行以下語句時,導致其他對MongoDB的請求無法被相應,線上應用程式報錯。
db.getCollection('***').ensureIndex({key:1})
2、原因分析
MongoDB建索引時,預設前臺操作,原因是為了儘可能快的建立索引,在此過程中會阻塞其他對資料庫的IO操作。可以通過設定background=true使其後臺執行,單獨起一個執行緒執行相關操作。
3、解決方案
執行一下語句,後臺建立索引。
db.getCollection('***').ensureIndex({key:1},{background: true})
4、其他
- 檢視已經新增的索引
db.getCollection('***').getIndexes()
相關推薦
MongoDB加索引導致鎖庫的問題記錄
1、問題描述 執行以下語句時,導致其他對MongoDB的請求無法被相應,線上應用程式報錯。 db.getCollection('***').ensureIndex({key:1}) 2、原因分析 MongoDB建索引時,預設前臺操作,原因是為了儘可能快的建立索引,在
MongoDB 建立索引導致鎖庫
MongoDB 建立索引導致鎖庫 背景描述 兩千多萬資料,204G 的資料建立索引,執行 db.collection.ensureIndex({key:1}) 之後,是要鎖庫的,開啟另一個終端,任何操作都不能執行。 根本原因 在資料庫建立索引時
MongoDB 索引的建立注意事項、以及建索引導致鎖庫的解決方案
MongoDB索引的建立注意事項 在資料量超大的情形下,
mongodb 建索引導致資料庫阻塞
在MongoDB上建索引可能會對MongoDB叢集對可用性產生負面影響。在生產服務上,如果針對一個大集合觸發建立索引,且在前臺執行,你可能會發現,在索引建完之前,整個叢集都無影響。在一個大集合上,這個過程可能會持續幾個小時,甚至幾天。 解決的方法很簡單,MongoDB 提供了兩種建索引的訪問,一
MySQL鎖(二)表鎖:為什麼給小表加欄位會導致整個庫掛掉?
## 概述 表級鎖是MySQL中鎖定粒度最大的一種鎖,表示對當前操作的整張表加鎖,它實現簡單,資源消耗較少,被大部分MySQL引擎支援。最常使用的MYISAM與INNODB都支援表級鎖定。表級鎖定分為表共享讀鎖(共享鎖)與表獨佔寫鎖(排他鎖)。 特點:開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發出鎖衝突的
mysql-不恰當的update語句使用主鍵和索引導致mysql死鎖
行修改 sql錯誤 狀態 還要 錯誤日誌 示意圖 http 概率 最小 背景知識:MySQL有三種鎖的級別:頁級、表級、行級。 MyISAM和MEMORY存儲引擎采用的是表級鎖(table-level locking);BDB存儲引擎采用的是頁面鎖(page-level l
給MongoDB添加索引
div ... find() mongodb dir 方便 指定 foo log 用過數據庫的都知道,數據庫索引與書籍的索引類似,都是用來幫助快速查找的。 MongoDB的索引跟關系型數據庫的索引幾乎一致。 1. 索引的創建 mongodb采用ensur
數據庫的數據類型、索引、鎖、事務和視圖
ima -m log_file oat 寬度 默認值 col 說明 prim 數據庫的數據類型、索引、鎖、事務和視圖 數據的類型 1)數據類型: 數據長什麽樣? 數據需要多少空間來存放? 系統內置數據類型和用戶定義數據類型 2)MySql 支持多種列
MySQL通過添加索引解決線上數據庫服務器壓力大問題
索引 MySQL 監控 無法登陸無法打開網頁 昨天線上應用反饋晚上 19:30-19:43以及 20:13到20:21兩個時間段所有人包括我們自己建的教室都進不去,classroom B套無法登陸,主頁無法訪問,已有超過10個老師和學生反饋進不去教室的問題通過監控查看出現問題時數據庫服務器的c
數據庫索引(二)聚集/非聚集索引,索引和鎖
mysql聚集索引(InnoDB,使用B+Tree作為索引結構)在一個結構中保存了b-tree索引和數據行;按照主鍵的順序存儲在葉子頁上;主鍵索引:葉節點存儲(主鍵數據:所有剩余列數據)二級索引(非聚簇索引):葉節點存儲(索引列數據:主鍵數據)非葉節點只存儲 索引列優點:可以把相關數據保存在一起,如根據用戶i
MongoDB唯一索引(unique:true)導致的問題
最近在使用Vue + MongoDB + express 寫一個專案。 之前使用mongoose 定義Schema的時候 先定義一個欄位為unique(唯一索引),類似於: const bookSch
外來鍵缺乏索引導致的Oracle資料庫死鎖
Global Enqueue Services Deadlock detected. More info in file /u01/app/oracle/diag/rdbms/mdmdb/mdmdb1/trace/mdmdb1_ora_2752986.trc.檢視 mdmdb1_ora_2752986.trc
事務的隔離級別,加鎖的細節,以及兩者之間的關係。 同時也說明了 索引 與 鎖 之間的關係,以及死鎖成因的簡化的情況
背景 MySQL/InnoDB的加鎖分析,一直是一個比較困難的話題。我在工作過程中,經常會有同事諮詢這方面的問題。同時,微博上也經常會收到MySQL鎖相關的私信,讓我幫助解決一些死鎖的問題。本文,準備就MySQL/InnoDB的加鎖問題,展開較為深入的分析與討論,
學習筆記 12 數據庫索引和鎖
alter tps 也會 較差 效率比較 條件 變更 新的 邏輯 索引是為了提高查詢的效率。常見的索引模型有hash索引,有序數組,二叉樹索引。hash索引:hash表是一種以鍵值對存儲的數據結構,適用於等值查詢場景;由於數據不是有序存儲的,所以範圍查詢時效率比較差。有序數
常用數據庫記錄
忘記 第一個 文本 采樣 tar nim sting air ftw 記錄一下常用的數據庫。 TIMIT也忘記當時從哪下的了,網上也沒看到好一點的鏈接。TIMIT全稱The DARPA TIMIT Acoustic-Phonetic Continuous Speech
mongodb(2) -索引創建
lsp log find html 對象 uniq code style unique 在shell中查看集合中已經存在的索引,你可以運行: db.things.getIndexes() 要查看數據庫中所有的索引,可以運行: db.system.indexes.
mongoDB創建數據庫用戶
creat use nbsp dem 顯示 mon min div cnblogs 運行mongo.exe >use demo //切換到要創建用戶的數據庫 >db.createUser({user: "admin",pwd: "admin",roles:
Android.mk添加本地程序和庫的經常使用模版
size 例如 center 配置文件 clear hello main 解釋 共享 Android.mk添加本地程序和庫的經常使用模版 Android中添加本地程序或者庫。這些程序和庫與其所在路徑沒有關系。僅僅與它們的配置文件Android.mk有關。Androi
mysql 為表添加索引
sql代碼 數根 多表連接查詢 war ble btree 創建 技術 isa 索引作用 在索引列上,除了上面提到的有序查找之外,數據庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當數據量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。 例如,
多線程操作數據拷貝要加線程鎖
-a article 關系 deb popu 過程 切換 div 中一 debug三天之後。在今天最終發現了自己開的兩個線程(一個接收數據。一個處理數據)所處理的數據並不相等。用compare比較後發現數據有所偏差,處理線程的數據存成文件之後隔一段都要比接收線程少一點。