sql >> Databáze >  >> RDS >> Mysql

Výkon operátora MySQL IN na (velkém?) počtu hodnot

Obecně řečeno, pokud je IN seznam se příliš zvětší (pro nějakou špatně definovanou hodnotu 'příliš velký', která je obvykle v oblasti 100 nebo menší), je efektivnější použít spojení a v případě potřeby vytvořit dočasnou tabulku pro uložení čísel.

Pokud jsou čísla hustá (žádné mezery – což naznačují ukázková data), můžete to udělat ještě lépe s WHERE id BETWEEN 300 AND 3000 .

Pravděpodobně však v sadě existují mezery, v tomto okamžiku může být nakonec lepší přejít na seznam platných hodnot (pokud mezery nejsou relativně malé, v takovém případě můžete použít:

WHERE id BETWEEN 300 AND 3000 AND id NOT BETWEEN 742 AND 836

Nebo jaké jsou ty mezery.



  1. Vyberte 10 nejlepších záznamů pro každou kategorii v MySQL

  2. Změnit počáteční číslo automatického zvýšení?

  3. Je možné zadat parametry pro název tabulky nebo sloupce v připravených příkazech nebo QueryRunner.update()?

  4. Jak vytvořím a dotazuji propojené databázové servery v SQL Server?