当前位置:网站首页>Some principles of mongodb optimization
Some principles of mongodb optimization
2022-07-07 13:12:00 【cui_ yonghua】
The basic chapter ( Can solve the problem of 80% The problem of ):
MongoDB data type 、 Key concepts and shell Commonly used instructions
MongoDB Various additions to documents 、 to update 、 Delete operation summary
Advanced :
Other :
1. Query optimization
Make sure your query takes full advantage of the index , use explain Command to check the execution of the query , Add the necessary indexes , Avoid table scanning .
2. Figure out the size of the hot data
Maybe your data set is very large , But it's not that important , What matters is how big your thermal data set is , How big is the data you often visit ( Including frequently accessed data and all index data ).
Use MongoDB, You'd better make sure your hot data is below the memory size of your machine , Make sure the memory can hold all the hot data .
3. Choose the right file system
MongoDB The data file is pre allocated , And in Replication Inside ,Master and Replica Sets Non - Arbiter Nodes will create enough empty files in advance to store operation logs .
These file allocation operations can be very slow on some file systems , Cause the process to be Block. So we should choose those file systems with fast space allocation . The conclusion here is to try not to use ext3, use ext4 perhaps xfs.
4. Choose the right hard disk
The choices here include the disk RAID The choice of , It also includes disks and SSD Comparative selection of .
5. Use less as far as possible in How to query
Especially in shard On , He will let your inquiry go by a shand Last run , If you have to use it as a last resort shard Index up .
Optimize in The way is to in Decompose into single queries one by one . The speed will increase 40-50 times
6. Reasonable design sharding key
The incremental sharding-key: Suitable for fields that can be delimited , such as integer、float、date Type of , The query time is relatively fast
Random sharding-key: It is suitable for the scenario of frequent write operations , And in this case, if it's in a shard It's going to make this shard The load is higher than the others , It's not balanced , So I hope to hash Inquire about key, Distribute writes across multiple locations shard on , Consider compounding key As sharding key, The general principle is fast query , Try to reduce the number of spans shard Inquire about ,balance Less equalization .
mongodb The default is a single record 16M, Especially in the use of GFS When , Be sure to pay attention to shrading-key The design of the .
Unjustified sharding-key There will be , Multiple documents , In a chunks On , meanwhile , because GFS Large files are often stored in , Lead to mongodb Doing it balance You can't get through sharding-key To separate these documents into different shard On , Now mongodb Will constantly report errors [conn27669] Uncaught std::exception: St9bad_alloc, terminating. Finally lead to mongodb Fall down .
terms of settlement : enlarge chunks size ( Cure the symptoms ), Well designed sharding-key( Permanent cure ).
7.mongodb Can pass profile To monitor data , To optimize .
See if it's on profile function Command db.getProfilingLevel() return level Grade , The value is 0|1|2,
Respectively means :0 On behalf of closed ,1 For recording slow orders ,2 Represent all
Turn on profile The function command is db.setProfilingLevel(level); #level Grade , The value is the same as above. level by 1 When , The default value of slow command is 100ms, Change to db.setProfilingLevel(level,slowms) Such as db.setProfilingLevel(1,50) This changes to 50 millisecond
adopt db.system.profile.find() View the current monitoring log .
边栏推荐
- Cloud detection 2020: self attention generation countermeasure network for cloud detection in high-resolution remote sensing images
- 基于鲲鹏原生安全,打造安全可信的计算平台
- MongoDB复制(副本集)总结
- How did Guotai Junan Securities open an account? Is it safe to open an account?
- MongoDB命令汇总
- PCAP学习笔记二:pcap4j源码笔记
- Vscade editor esp32 header file wavy line does not jump completely solved
- How to continue after handling chain interruption / sub chain error removed from scheduling
- Go语言学习笔记-结构体(Struct)
- 达晨与小米投的凌云光上市:市值153亿 为机器植入眼睛和大脑
猜你喜欢
Practical example of propeller easydl: automatic scratch recognition of industrial parts
Introduce six open source protocols in detail (instructions for programmers)
关于 appium 启动 app 后闪退的问题 - (已解决)
“新红旗杯”桌面应用创意大赛2022
LIS 最长上升子序列问题(动态规划、贪心+二分)
Per capita Swiss number series, Swiss number 4 generation JS reverse analysis
HZOJ #240. Graphic printing IV
About how appium closes apps (resolved)
[learning notes] zkw segment tree
飞桨EasyDL实操范例:工业零件划痕自动识别
随机推荐
飞桨EasyDL实操范例:工业零件划痕自动识别
JS缓动动画原理教学(超细节)
Cinnamon Applet 入门
Users, groups, and permissions
The difference between cache and buffer
JS判断一个对象是否为空
Isprs2021/ remote sensing image cloud detection: a geographic information driven method and a new large-scale remote sensing cloud / snow detection data set
简单好用的代码规范
How to reset Firefox browser
分布式事务解决方案
DrawerLayout禁止侧滑显示
迅为iTOP-IMX6ULL开发板Pinctrl和GPIO子系统实验-修改设备树文件
How to make the new window opened by electorn on the window taskbar
.Net下極限生產力之efcore分錶分庫全自動化遷移CodeFirst
信号强度(RSSI)知识整理
Japanese government and enterprise employees got drunk and lost 460000 information USB flash drives. They publicly apologized and disclosed password rules
工具箱之 IKVM.NET 项目新进展
JNA learning notes 1: Concepts
认养一头牛冲刺A股:拟募资18.5亿 徐晓波持股近40%
飞桨EasyDL实操范例:工业零件划痕自动识别