我使用sqlx在Go代码中执行查询。这个查询有一个很长的值列表(~10,000),我需要在WHERE in (?)条款。这导致业绩大幅放缓。如何优化这样的查询?而且,这个查询是在Redshift集群上执行的,所以索引列不是提高查询性能的解决方案。
values := []int64{143, 123, 123, 542....} // ~10,000 elements
query, args, err := sqlx.In(query, values)
if err != nil {
return nil, err
}
query = dbInterface.Rebind(query)
err = dbInterface.Select(&list, query, args...)查询:
SELECT * FROM table_name WHERE some_id IN (?) ORDER BY created_at;发布于 2017-02-20 06:31:41
我最终为I创建了一个临时表,并执行了一个连接。这大大提高了查询性能。
发布于 2017-02-17 19:23:19
您需要让sqlx生成以下其中之一:
values语法:
其中some_id在(值(143),(123))https://stackoverflow.com/questions/42291085
复制相似问题