MongoDB性能測試:嵌套對象,數(shù)組與純鍵值對
????使用VirtualBox虛擬機搭載Debian11系統(tǒng)進行測試,內(nèi)存分配2G,硬盤為機械硬盤。mongod進程占用在900M左右,測試過程由于未知原因中有少量swap被使用(45M)。由于未嚴格控制變量,僅數(shù)據(jù)之間的相對值有一定參考價值,數(shù)據(jù)的絕對值無參考價值。這里我們基于MongoDB自帶的Profiler來記錄單次查詢耗時作為性能表現(xiàn)進行比較。
????測試數(shù)據(jù)庫中僅一個集合,集合內(nèi)含文檔一千萬個,文檔內(nèi)容如下
?




????數(shù)據(jù)庫沒有進行過任何優(yōu)化(包括uLimit),文檔除_id外沒有索引。
????查詢語句例:

????嵌套對象平均用時(10次):9600ms
????數(shù)組平均用時(10次):11343.8ms
????純鍵值對平均用時(10次):9048.3ms
????注:無索引情況下直接查詢與.count()用時差距較小
????結(jié)論:如果你想要更快的查詢速度,可能純鍵值會是更合適的選擇。在占用空間上純鍵值對也有可以忽略的優(yōu)勢。
????如果這對你的數(shù)據(jù)庫建模有幫助,還請不吝一個免費的贊!
標簽: