繁体   English   中英

这个mysql查询有更快的查询吗?

[英]Is there a faster query for this mysql query?

我正在使用 mysql dbs。 特定表中有两列(column1 和 column2)和 10000000+ 行。 我想获取 column1 是 50000 个编号列表之一的所有条目。 我目前正在使用此查询:

Select * from db.table where column1 in (list of 50000 no.s)

还有比这更快的查询吗?

我不能谈论 MySQL - 只有 SQL Server - 但同样的原则可能适用。

在 SQL Server 上,IN 存在没有统计信息的严重问题。 这意味着对于非平凡数字,查询计划是表扫描。

最好制作一个临时表并加载 ID(并在其上放置一个唯一索引以提供统计信息),然后在两个表之间进行 JOIN。 更多供查询分析器使用。

  • INDEX(column1)
  • 表中只有2列吗? 如果不是,那么不要使用SELECT * ,而是拼出列名。
  • 请提供解释EXPLAIN SELECT ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM