Někdy může být nutné odstranit index v MySQL, pokud nefungují podle očekávání. Zde je návod, jak zrušit index v MySQL pomocí dotazu MySQL DROP INDEX.
Jak odstranit index v MySQL
Zde jsou kroky k DROP INDEX v MySQL. K odstranění existujícího indexu z tabulky použijeme dotaz MySQL DROP INDEX.
Zde je syntaxe příkazu MySQL DROP INDEX
DROP INDEX index_name ON table_name
[algorithm_option | lock_option];
Ve výše uvedeném dotazu nahraďte index_name s názvem indexu a název_tabulky s názvem vaší databázové tabulky.
Bonusové čtení:MySQL DROP FOREIGN KEY
Můžete také zadat 2 volitelné argumenty – algorithm_option a lock_option.
algorithm_option může mít jednu ze 3 hodnot – default, inplace, copy. V závislosti na vašem argumentu použije MySQL různé algoritmy k odstranění indexu.
Jeho syntaxe je
ALGORITHM [=] {DEFAULT|INPLACE|COPY}
- výchozí – Má to stejný účinek, jako když nepoužíváte algorithm_option argument
- kopírovat – Tabulka, kde potřebujete odstranit index, bude zkopírována a index bude odstraněn z kopírovací tabulky. Během této doby nejsou povoleny souběžné operace jako INSERT a UPDATE.
- inplace – V tomto případě je tabulka znovu vytvořena na místě bez indexu. Ačkoli tato možnost umožňuje souběžné operace, během provádění vloží zámek metadat.
V závislosti na lock_option MySQL během mazání indexu uzamkne/neuzamkne přístup pro čtení/zápis do vašich tabulek. lock_option má následující syntaxi
LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}
Vyžaduje 4 hodnoty:
- výchozí – umožňuje maximální souběžnost pro váš výběr algoritmu. umožňuje souběžné čtení i zápis, pokud je podporováno. Pokud ne, umožňuje pouze souběžné čtení. Pokud ani to není podporováno, vynucuje si výhradní přístup.
- žádné – pokud je podporováno, můžete mít souběžné čtení a zápis. V opačném případě MySQL zobrazí chybu.
- sdílené – pokud je podporována možnost sdílení, můžete mít souběžné čtení, ale ne souběžné zápisy.
- exkluzivní – tato možnost vynucuje výhradní přístup
Bonusové čtení:MySQL DROP DATABASE
Příklad MySQL DROP INDEX
Řekněme, že máte následující tabulku s indexem.
mysql> create table orders(order_id int primary key, order_date date, product varchar(255), sale int, index name(product) );
Zde je dotaz SQL pro odstranění stávajícího indexu name z tabulky objednávky .
mysql> DROP INDEX name ON orders;
Bonusové čtení:SLOUPEC DROP MySQL
MySQL DROP PRIMARY KEY Index
Zde je syntaxe pro odstranění indexu primárního klíče u objednávek tabulek.
mysql> DROP INDEX `PRIMARY` ON orders;
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!