当前位置:网站首页>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 .
边栏推荐
猜你喜欢

. Net ultimate productivity of efcore sub table sub database fully automated migration codefirst

记一次 .NET 某新能源系统 线程疯涨 分析

达晨与小米投的凌云光上市:市值153亿 为机器植入眼睛和大脑

Go语言学习笔记-结构体(Struct)

About the problem of APP flash back after appium starts the app - (solved)

Cinnamon 任务栏网速

Cinnamon Applet 入门

Vscade editor esp32 header file wavy line does not jump completely solved

基于鲲鹏原生安全,打造安全可信的计算平台

Sed of three swordsmen in text processing
随机推荐
PACP学习笔记三:PCAP方法说明
DETR介绍
抓细抓实抓好安全生产各项工作 全力确保人民群众生命财产安全
TPG x AIDU|AI领军人才招募计划进行中!
Introduce six open source protocols in detail (instructions for programmers)
Per capita Swiss number series, Swiss number 4 generation JS reverse analysis
PAcP learning note 1: programming with pcap
MongoDB命令汇总
Milkdown 控件图标
[Presto profile series] timeline use
博文推荐|Apache Pulsar 跨地域复制方案选型实践
Analysis of DHCP dynamic host setting protocol
API query interface for free mobile phone number ownership
Differences between MySQL storage engine MyISAM and InnoDB
MongoDB的导入导出、备份恢复总结
自定义线程池拒绝策略
leecode3. 无重复字符的最长子串
Grep of three swordsmen in text processing
日本政企员工喝醉丢失46万信息U盘,公开道歉又透露密码规则
关于 appium 如何关闭 app (已解决)