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

Jak vytvořit index v MySQL

Indexy MySQL usnadňují vyhledávání a zlepšují rychlost dotazů SQL. Zde je návod, jak vytvořit index v MySQL pro zlepšení výkonu databáze pomocí příkazu MySQL CREATE INDEX.

Jak funguje indexování v MySQL

Obvykle, když spustíte SQL dotaz s klauzulí WHERE nebo jiným druhem vyhledávání, jako je JOINS, MySQL potřebuje prohledat všechny záznamy ve vaší tabulce, aby nalezlo odpovídající řádky. V případě, že vaše tabulky obsahují miliony řádků, může to být velmi časově náročné a značně zpomalit vaše dotazy SQL.

Indexy MySQL urychlují vaše dotazy SQL tím, že udržují hodnoty indexovaných sloupců ve struktuře B-stromu, která je optimalizována pro vyhledávání a párování. Indexy tedy usnadňují rychlé nalezení řádků, které odpovídají jedné nebo více hodnotám.

Ve výchozím nastavení MySQL vytváří index pro každý sloupec primárního klíče ve vaší databázi.

Bonusové čtení:Jak vytvořit uloženou proceduru v MySQL

Jak vytvořit index v MySQL

Zde jsou kroky k vytvoření indexu v MySQL. Index můžete vytvořit buď při vytváření tabulky, nebo jej přidat později. Podíváme se na oba tyto přístupy.

Jak vytvořit MySQL index během vytváření tabulky

Zde je syntaxe pro vytvoření indexu během vytváření tabulky

CREATE TABLE table_name(
   column_definitions,
   INDEX (list_of_columns) 
);

Ve výše uvedeném dotazu název_tabulky je vaše tabulka, která má být vytvořena, a definice_sloupců je seznam sloupců a definic.

INDEX(seznam_sloupců) je místo, kde vytváříte MySQL index. Index bude vytvořen pro čárkami oddělený seznam sloupců uvedený jako list_of_columns

Bonusové čtení:Jak vytvořit uživatele v MySQL

Zde je příklad.

CREATE TABLE orders(
   order_id INT PRIMARY KEY,
   sale INT NOT NULL,
   product_id INT NOT NULL,
   product_name VARCHAR(10),
   INDEX (product_id) 
);

Ve výše uvedeném dotazu jsme vytvořili index pro product_id sloupec.

Zde je příklad, jak vytvořit index pomocí více sloupců.

CREATE TABLE orders(
   order_id INT PRIMARY KEY,
   sale INT NOT NULL,
   product_id INT NOT NULL,
   product_name VARCHAR(10),
   INDEX (product_id, order_id) 
);

Ve výše uvedeném dotazu jsme vytvořili index pro více sloupců product_id, order_id

Bonusové čtení:Jak vytvořit databázi v MySQL

Jak přidat index do sloupce v tabulce

Řekněme, že chcete přidat index pro sloupec nebo sadu sloupců, pak použijte příkaz CREATE INDEX. Zde je syntaxe příkazu CREATE INDEX

CREATE INDEX index_name ON table_name (column_list)

Ve výše uvedeném dotazu zadáváme název indexu, tabulku, pro kterou potřebujete index vytvořit, a seznam sloupců, které mají být zahrnuty do indexování.

Zde je příklad přidání nového indexu pro sloupec název_produktu ve výše uvedených objednávkách tabulka

CREATE INDEX prod_name_index ON orders (product_name);

Chcete-li zobrazit indexy přidané do tabulky, můžete použít příkaz SHOW INDEXES. Zde je syntaxe pro SHOW INDEXES

SHOW INDEXES from table_name;

Zde je příklad zobrazení indexů z objednávek tabulka
SHOW INDEXES from orders;

Doufejme, že výše uvedený článek vám pomůže vytvořit index v MySQL.

Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. Vytváření vysoce dostupné databáze pro Moodle pomocí MariaDB (Replication &MariaDB Cluster)

  2. Jak vypočítat věk (v letech) na základě data narození a getDate()

  3. Funkce STRING_AGG() v PostgreSQL

  4. Konfigurace replikace heterogenní databáze – SQL Server na Oracle