[英]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)
SELECT *
,而是拼出列名。EXPLAIN SELECT ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.