簡體   English   中英

MongoDB gridFS-文件名長度,索引,性能

[英]MongoDB gridFS - filename length, indexing, performance

我正在學習gridFS,但有幾個問題。

1)gridFS通過生成的_id自動索引文件。 但是大多數時候我都是通過文件名來獲取文件的,所以我應該自己在“文件名”上創建索引嗎?

2)gridFS沒有文件夾,只有文件名,但是我可以通過使用帶斜杠“ /images/avatars/35.jpg”的文件名來模仿文件夾,對嗎?

3)如果我在“文件名”上建立索引-從性能上來說,使用短文件名會更好嗎? 我的意思是-如果我使用長度為24個符號+后綴的用戶_id,例如"/images/avatar_4f1d36b58e42ba3836ed178e_t.jpg" ,那么在如此長的字段上建立索引是否會減慢系統速度? 使用短用戶登錄名而不是_id會更好(更快)嗎?

1)如果文件名沒有被索引,我會感到非常驚訝。 它在整個API中都使用過,並且我假設它已被索引。

2)是的,可以,但是沒有隱含目錄的實際概念。 列出文件/目錄有點復雜。 換句話說,它只是一個標簽。

3)索引使用哈希或固定長度的字符串,因此長鍵與長鍵一樣容易索引。

1)規范不需要索引文件名。 您可能想檢查驅動程序中的代碼,或者自己創建索引。 您應該考慮的一件事是文件名不必唯一。 您可以重新考慮設計,然后在_id上查詢。

2)是的。

3)mongodb中的b樹索引不使用哈希。 較大的字符串將在索引中占用更多空間,從而占用更多的RAM,但是我認為性能不會受到太大的影響(除非您將使用更多的RAM視為對性能造成了影響)。 mongodb的一個好的經驗法則是,索引(和“工作集”)應該適合RAM。 如果您可以重做應用程序以查詢_id而不是文件名,則不必擔心該索引的空間。

GridFS在_id上有一個默認索引(很明顯),在filenameuploadDate上有一個復合索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM