簡體   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