官术网_书友最值得收藏!

  • 精通Neo4j
  • 龐國明等
  • 493字
  • 2023-07-17 19:00:42

1.7.4 Neo4j的存儲優化

Neo4j支持存儲優化(壓縮和內聯存儲屬性值),對于某些短字符的屬性可以直接存儲在屬性文件中(neostore.propertystore.db)。在實際操作中,像郵政編碼、電話號碼這樣的短字符串屬性就可以直接內聯到屬性存儲文件,而不是單獨地放在另一個動態存儲區,這樣將大幅減少I/O操作并且增大吞吐量,因為只有一個文件需要訪問。

除了可以內聯屬性值,Neo4j還可以對屬性名稱的空間嚴格維護,例如在社交網絡中,有可能會有多個節點存在first_name和last_name這樣的屬性。如果將每個屬性都逐字寫入到磁盤上就會造成浪費。因此,替代方案是屬性名稱都通過屬性索引文件從屬性存儲中間接引用。屬性索引允許所有具有相同名稱的屬性共享單個記錄,因而Neo4j可以節省相當大的空間和I/O開銷。

即使現在的磁盤訪問速度已經很快了,但是CPU訪問磁盤仍然比CPU直接訪問高速緩存要慢得多。因此,Neo4j也采用了緩存策略,保證那些經常訪問的數據可以快速地被多次重復訪問。Neo4j高速緩存的頁面置換算法是基于最不經常使用的頁置換(Least Frequently Used,LFU)緩存策略,根據頁的常用程度進行微調。也就是說即使有些頁面近期沒有使用過,但是因為以前的使用頻率很高,那么在短期之內它也是不會被淘汰的。該策略保證了緩存資源在統計學上的最與配置。

主站蜘蛛池模板: 蕲春县| 兴安县| 哈密市| 涡阳县| 侯马市| 阿巴嘎旗| 沂南县| 河北省| 南充市| 灯塔市| 宝鸡市| 保靖县| 金沙县| 孟村| 泉州市| 洛隆县| 军事| 闽侯县| 清丰县| 东平县| 罗甸县| 文水县| 射阳县| 建湖县| 涿鹿县| 郑州市| 永修县| 通化县| 浮山县| 瑞丽市| 荔浦县| 长兴县| 延川县| 历史| 常山县| 阿拉尔市| 谢通门县| 丽江市| 三门峡市| 张北县| 黔江区|