sql >> Database >  >> RDS >> Mysql

Inzicht in prestatie-effecten voor zoeken op mysql-tuple

Volgens deze vraag , is ondersteuning voor tupels in MySQL niet geoptimaliseerd. Zoals @O.Jones in zijn commentaar schrijft, is de queryplanner in MySQL een enorm complex beest, en dingen die moeten werk gedraagt ​​zich niet altijd zoals je zou verwachten.

Ik denk dat je tweede zoekopdracht sneller is omdat de eerste waar clausule dept_id in (101, 103) vermindert de zoekruimte voor de tweede die de tuples gebruikt. De query-optimizer moet doe dit automagisch, maar in jouw voorbeeld doet hij dat in ieder geval niet.

Ik geloof niet dat de IN clausule is het probleem - het is de tuple-vergelijking die de hele tabel scant en geen beschikbare indexen gebruikt.



  1. SQLite Kolom hernoemen

  2. MySQL Buitenlandse sleutel toevoegen

  3. Hoe kan ik haakjes vervangen door koppeltekens binnen de Oracle REGEXP_REPLACE-functie?

  4. InMemory DUPLICATE Verwarring in Oracle RAC