2024-09-29 07:31:39 发布
网友
我无法对数据库进行任何更改。可能会有数百万行,即使我把数字除以10,仍然需要几个小时甚至一整天。所以我想知道是否有任何方法可以改进我的SQL select代码
PS:我使用python获取数据,所以如果有其他方法,请告诉我。非常感谢。 以下是我的SQL代码:
select a.p_id, b.f_id,c.code,c.date,c.done_price,c.zq_id from a, b, c where c.zq_id = b.zq_id and b.f_id = a.f_id
请共享dbms名称和版本以及表a、b和c的定义
我刚刚在您的查询中使用了显式连接,以使其更具可读性和更易于更改,但它不会提高任何性能
select a.p_id, b.f_id,c.code,c.date,c.done_price,c.zq_id from a inner join b on b.f_id = a.f_id inner join c on c.zq_id = b.zq_id
您应该使用正确、明确、标准、可读的JOIN语法编写查询:
JOIN
select a.p_id, b.f_id, c.code, c.date, c.done_price, c.zq_id from a join b on b.f_id = a.f_id join c on c.zq_id = b.zq_id ;
这不会影响性能。它确实显示了对SQL语言的熟悉
然后,为了提高大多数数据库的性能,您需要索引。以下两组中的一组应足够:
b(f_id, zq_id)
c(zq_id)
b(zq_id, f_id) and
拥有这四个索引应该没有什么害处
请共享dbms名称和版本以及表a、b和c的定义
我刚刚在您的查询中使用了显式连接,以使其更具可读性和更易于更改,但它不会提高任何性能
您应该使用正确、明确、标准、可读的
JOIN
语法编写查询:这不会影响性能。它确实显示了对SQL语言的熟悉
然后,为了提高大多数数据库的性能,您需要索引。以下两组中的一组应足够:
b(f_id, zq_id)
和c(zq_id)
b(zq_id, f_id) and
a(f_id)`拥有这四个索引应该没有什么害处
相关问题 更多 >
编程相关推荐