我有一個由圖形組成的數據庫。我需要訪問表看起來像這樣:高效查詢圖結構
Sno Source Dest
1 'jack' 'bob'
2 'jack' 'Jill'
3 'bob' 'Jim'
這裏Sno
是主鍵。源和目標是2個非唯一的數字,代表我的圖中節點之間的邊。我的Source
和Dest
也可能是字符串,不一定是數字數據類型。我的數據庫中有大約500萬條記錄,我使用Postgresql和Psycopg2構建了它。
查詢主鍵非常簡單快捷。但是,我需要經常查詢這個數據庫中的所有dest
特定源連接到。現在,我通過調用查詢做到這一點:
SELECT * FROM name_table WHERE Source = 'jack'
這被證明是非常低效的(高達每查詢2秒),也沒有辦法,我可以做這個主鍵,因爲它不是唯一。有什麼方法可以根據這些重複值進行索引並快速查詢它?
你已經在'Source'字段設置了一個索引?正如這裏解釋的http://www.postgresql.org/docs/9.1/static/sql-createindex.html – fdomig 2012-07-19 20:00:16
要設置一個索引,你需要把它作爲主鍵的權利?它不需要唯一的密鑰嗎?如果不是我如何設置這個索引? – Amitash 2012-07-19 20:01:39
您應該閱讀我發佈的文檔。這告訴你*使用PostgreSQL進行索引時的一切*。 – fdomig 2012-07-19 20:03:27