2013-07-06 45 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))

相关问题