当前位置:网站首页>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 .
边栏推荐
- MongoDB复制(副本集)总结
- 《开源圆桌派》第十一期“冰与火之歌”——如何平衡开源与安全间的天然矛盾?
- 通过Keil如何查看MCU的RAM与ROM使用情况
- COSCon'22 社区召集令来啦!Open the World,邀请所有社区一起拥抱开源,打开新世界~
- Realbasicvsr test pictures and videos
- About how appium closes apps (resolved)
- Sample chapter of "uncover the secrets of asp.net core 6 framework" [200 pages /5 chapters]
- Milkdown 控件图标
- Sample chapter of "uncover the secrets of asp.net core 6 framework" [200 pages /5 chapters]
- Practical case: using MYCAT to realize read-write separation of MySQL
猜你喜欢
高端了8年,雅迪如今怎么样?
Vscode编辑器ESP32头文件波浪线不跳转彻底解决
Aosikang biological sprint scientific innovation board of Hillhouse Investment: annual revenue of 450million yuan, lost cooperation with kangxinuo
- Oui. Migration entièrement automatisée de la Sous - base de données des tableaux d'effets sous net
日本政企员工喝醉丢失46万信息U盘,公开道歉又透露密码规则
Adopt a cow to sprint A shares: it plans to raise 1.85 billion yuan, and Xu Xiaobo holds nearly 40%
About how appium closes apps (resolved)
ESP32构解工程添加组件
OSI seven layer model
Blog recommendation | Apache pulsar cross regional replication scheme selection practice
随机推荐
PACP学习笔记三:PCAP方法说明
Cinnamon Applet 入门
[untitled]
红杉中国完成新一期90亿美元基金募集
LIS 最长上升子序列问题(动态规划、贪心+二分)
. Net ultimate productivity of efcore sub table sub database fully automated migration codefirst
迅为iTOP-IMX6ULL开发板Pinctrl和GPIO子系统实验-修改设备树文件
10 张图打开 CPU 缓存一致性的大门
How to reset Google browser? Google Chrome restore default settings?
[untitled]
HZOJ #240. Graphic printing IV
【学习笔记】zkw 线段树
Why can basic data types call methods in JS
货物摆放问题
国泰君安证券开户怎么开的?开户安全吗?
How does MySQL create, delete, and view indexes?
How to reset Firefox browser
About the problem of APP flash back after appium starts the app - (solved)
飞桨EasyDL实操范例:工业零件划痕自动识别
[untitled]