sql >> Databáze >  >> RDS >> Sqlserver

Jak důležité je pořadí sloupců v indexech?

Podívejte se na index, jako je tento:

Cols
  1   2   3
-------------
|   | 1 |   |
| A |---|   |
|   | 2 |   |
|---|---|   |
|   |   |   |
|   | 1 | 9 |
| B |   |   |
|   |---|   |
|   | 2 |   |
|   |---|   |
|   | 3 |   |
|---|---|   |

Podívejte se, jak omezení na první sloupec A, protože váš první sloupec eliminuje více výsledků než omezení na první sloupec druhý? Je snazší, když si představíte, jak se musí index procházet napříč, sloupec 1, pak sloupec 2 atd....vidíte, že odříznutím většiny výsledků v prvním průchodu je 2. krok mnohem rychlejší.

V jiném případě, kdybyste se dotazovali na sloupec 3, optimalizátor by index ani nepoužil, protože to vůbec není užitečné při zužování sady výsledků. Kdykoli jste v dotazu, zúžení počtu výsledků, které je třeba řešit před dalším krokem, znamená lepší výkon.

Vzhledem k tomu, že index je také uložen tímto způsobem, neexistuje žádné zpětné sledování napříč indexem při hledání prvního sloupce, když se na něj dotazujete.

Stručně řečeno:Ne, není to pro parádu, jsou zde skutečné výkonnostní výhody.



  1. Jak upgradovat MariaDB 5.5 na MariaDB 10.1 na systémech CentOS/RHEL 7 a Debian

  2. Zrychlené obnovení databáze v SQL Server 2019

  3. Jak získat aktuální verzi systému správy databází MySQL (DBMS)?

  4. Formátování SQL v SQL Server Management Studio