我必須使用開源項目(biojava),但我對某些性能不滿意,我想花一些時間來改進它。圖形數據庫(neo4j)vs關係數據庫。需要設計幫助
例如,我有一個文本數據庫以這種方式編碼:
chrX Cufflinks exon 65175856 65175971 . . . gene_id "XLOC_002576"; transcript_id "TCONS_00004217"; exon_number "1"; gene_name "RP6-159A1.2"; oId "CUFF.3698.1"; nearest_ref "ENST00000456392"; class_code "p"; tss_id "TSS3873";
chrX Cufflinks exon 128986006 128986088 . . . gene_id "XLOC_002577"; transcript_id "TCONS_00004218"; exon_number "1"; oId "CUFF.3750.1"; class_code "u"; tss_id "TSS3874";
不是每個字段是強制性的,每個gene_id
可以被關聯到多個transcript_id
(1..N),並且每個具有transcript_id
1或更多exon
。
庫的行爲是加載整個文本文件在ArrayList
,併爲每個搜索所有列表必須迭代。這對小列表來說效果很好,但在我的情況下,我有10^10個查詢,列表很大,在一臺好的計算機上需要幾天的時間。
Neo4j會是一個不錯的選擇嗎?什麼是實施它的好方法?例如,創建一個僅字符串的實體並且在它們之間建立關係是不好的?還是用一張桌子使用Hsqldb更好?
請注意我不需要持久性,但速度和同步是強制性的。
編輯:如果你想,你可以看看項目here。
(你應該用「neo4j」和「hsqldb」來標記你的問題,你的問題會有更好的可見性) – cporte