是否有任何方法可以提高我的sql select效率?

2024-09-29 07:31:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法对数据库进行任何更改。可能会有数百万行,即使我把数字除以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

Tags: 方法代码fromid数据库sqldatecode
2条回答

请共享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语法编写查询:

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 a(f_id)`

拥有这四个索引应该没有什么害处

相关问题 更多 >