[英]B-Tree database options
我需要實現兩個不同pgsql表的兩個b樹索引,最好是在運行python web服務器進程的同一個盒子的內存中(查詢需要盡可能快)。 我想知道實現此目標的最佳方法:
我的需求按重要性順序是:
附加說明:樹一次可以達到數千個節點,必須承受較高的插入/刪除率
*因此,如果我搜索756.837,但僅存在755.928和757.113,則根據參數返回任意一個
需要明確的是,這個postgres數據庫將在處理的數據之上提供傳統的webapp原始數據。 我願意增加復雜性以維護webapp數據的性能。
第一步將是查看可以將PostgreSQL索引推送到所需位置的程度。 典型的btree索引速度很快,但沒有很多功能。 特別是,它們不能很好地進行knn搜索。 根據您的需要,您可能需要將索引從Btree更改為GiST。 GiST提供了KNN搜索(假設您的數據類型支持此功能!),並允許您執行其余大部分查找工作。 缺點是,根據您的數據類型,您可能最終需要進行一些編程以獲得對某些數據類型的適當支持。
與標准btree索引相比,GiST提供了更多的搜索選項,但查詢速度也較慢。 但是,主要優點是它們確實比GIN索引支持更高的插入/更新速率,並且它們還支持knn搜索。
如果那不適合您...。您可能想在內存中實現其他功能,可能使用內存中的緩存(如memcached),甚至只是普通的Sys V IPC和單獨的進程。 但是請注意並發訪問內存!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.