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

Jaké jsou největší výhody používání INDEXES v mysql?

Krátká odpověď:
Indexy zrychlují SELECT 's a zpomalte INSERT 's.

Obvykle je lepší mít indexy, protože urychlují select více než zpomalují insert .

Na UPDATE index může věci zrychlit pokud je v WHERE použito indexované pole klauzule a zpomalíte věci, pokud update jedno z indexovaných polí.

Jak poznáte, kdy použít index

Přidejte EXPLAIN před vaším SELECT prohlášení.
Jako takto:

EXPLAIN SELECT * FROM table1 
WHERE unindexfield1 > unindexedfield2 
ORDER BY unindexedfield3

Ukáže vám, kolik práce bude muset MySQL udělat na každém z neindexovaných polí.
Používání na základě těchto informací se můžete rozhodnout, zda se vyplatí přidávat indexy nebo ne.

Explain vám také může říci, zda je lepší vypustit a indexovat

EXPLAIN SELECT * FROM table1 
WHERE indexedfield1 > indexedfield2 
ORDER BY indexedfield3

Pokud je vybráno velmi málo řádků nebo se MySQL rozhodlo ignorovat index (čas od času to dělá) pak můžete index také vypustit, protože je zpomalení vašeho insert s, ale nezrychlí váš select 's.

Pak se také může stát, že vaše vybrané prohlášení není dostatečně chytré.
(Omlouvám se za složitost odpovědi, snažil jsem se to zjednodušit, ale nepodařilo se to).

Odkaz:
MySQL indexy – co jsou osvědčené postupy?



  1. Chyba MYSQLi:Uživatel již má aktivních připojení více než 'max_user_connections'

  2. Jak přenést všechny databáze MySQL ze starého na nový server

  3. Jak fungují MIN() a MAX() na řetězcích CHAR/VARCHAR v MySQL?

  4. Rozdíl mezi tabulkovou funkcí a zřetězenou funkcí?