2013-07-06 46 views
0

我有以下選擇命令。這些表格有大約2百萬條記錄。我正在查找的記錄不存在。但是選擇查詢很慢。我如何加快速度?其他人有這個問題,see here,但在這種情況下的解決方案不適用。如果記錄不存在Postgresql選擇命令慢

a1_value = 'AA' 
a2_value = "1" 
cur.execute("SELECT pk, a1, a2 FROM db_name WHERE a1 = %s AND a2 = %s LIMIT 1", (a1_value, a2_value)) 
+0

把索引放在a1和a2上 –

+0

對不起,我是新手。你什麼意思?你能給出一個代碼示例嗎? – user2104778

+1

我還沒有用過postgresql,但是你必須在where子句中使用的列上創建索引。這將加速*顯着* [文件](http://www.postgresql.org/docs/9.1/static/sql-createindex.html) –

回答

0

答案是把指數放在a1和a2上。例如: cur.execute(「CREATE INDEX index_title ON db_name(a1,a2)」) cur.execute(「SELECT pk,a1,a2 FROM db_name WHERE a1 =%s AND a2 =%s LIMIT 1」,( a1_value,a2_value))

相關問題