Zie indexen voor een database of tabel in MySQL?

Hoe zie ik of mijn database er indexen op heeft?

Hoe zit het met een specifieke tafel?


Antwoord 1, Autoriteit 100%

Om de index voor een specifieke tabel te gebruiken, gebruikt u index:

SHOW INDEX FROM yourtable;

Om indexen voor alle tabellen te zien binnen een specifiek schema, kunt u de statistiekentabel uit Information_schema gebruiken:

SELECT DISTINCT
    TABLE_NAME,
    INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema';

Verwijderen van de waar clausule u alle indexen in alle schema’s laat zien.


Antwoord 2, Autoriteit 7%

Als u alle indexen in alle databases allemaal tegelijk wilt zien:

use information_schema;
SELECT * FROM statistics;

Antwoord 3, Autoriteit 6%

SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;

Zie Documentatie .


Antwoord 4

U kunt deze query gebruiken om de nee van indexen als de indexnamen van elke tabel in de opgegeven database te krijgen.

SELECT TABLE_NAME,
       COUNT(1) index_count,
       GROUP_CONCAT(DISTINCT(index_name) SEPARATOR ',\n ') indexes
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'mydb'
      AND INDEX_NAME != 'primary'
GROUP BY TABLE_NAME
ORDER BY COUNT(1) DESC;

Antwoord 5

Ik stel deze query voor:

SELECT DISTINCT s.*
FROM INFORMATION_SCHEMA.STATISTICS s
LEFT OUTER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t 
    ON t.TABLE_SCHEMA = s.TABLE_SCHEMA 
       AND t.TABLE_NAME = s.TABLE_NAME
       AND s.INDEX_NAME = t.CONSTRAINT_NAME 
WHERE 0 = 0
      AND t.CONSTRAINT_NAME IS NULL
      AND s.TABLE_SCHEMA = 'YOUR_SCHEMA_SAMPLE';

Je hebt de hele Index alleenindex gevonden.

Met vriendelijke groet.


Antwoord 6

Om alle geïndexeerde kolommen per index in één kolom in de volgordevolgorde te krijgen.

SELECT table_name AS `Table`,
       index_name AS `Index`,
       GROUP_CONCAT(column_name ORDER BY seq_in_index) AS `Columns`
FROM information_schema.statistics
WHERE table_schema = 'sakila'
GROUP BY 1,2;

Ref: http://blog.9minutesnooze.com/mysql-information-schema -indexen/


Antwoord 7

Om alle uitgeschakelde indexen op db te controleren

SELECT INDEX_SCHEMA, COLUMN_NAME, COMMENT 
FROM information_schema.statistics
WHERE table_schema = 'mydb'
AND COMMENT = 'disabled'

Antwoord 8

U kunt uw indexen controleren in MySQL workbench. Onder de prestatierapporten-tabbladen kunt u alle gebruikte indexen en ongebruikte indexen op het systeem zien. of u kunt de query afvuren.

select * from sys.schema_index_statistics;

Antwoord 9

Dit werkt in mijn geval om de tabelnaam en kolomnaam in de overeenkomstige tabel voor geïndexeerde velden te krijgen.

SELECT TABLE_NAME , COLUMN_NAME, COMMENT 
FROM information_schema.statistics
WHERE table_schema = 'database_name';

Antwoord 10

Waarom niet show create table myTable?

Iemand heeft me dit verteld, maar ik heb niemand hier iets slechts zien noemen?

Het is handig als u een blik wilt werpen op de indexen en de kolominformatie.


Antwoord 11

gebruik om indexen te zien die u heeft gemaakt

SHOW INDEX from your_table_name;

om alle indexen op een tabel te zien (gemaakt door DB en u)

SHOW EXTENDED INDEX from your_table_name;

Antwoord 12

Als u de indexinformatie van een tabel wilt opvragen, gebruikt u de instructie SHOW INDEXES als volgt:

SHOW INDEXES FROM table_name;

U kunt de databasenaam opgeven als u niet verbonden bent met een database of als u de indexinformatie van een tabel in een andere database wilt ophalen:

SHOW INDEXES FROM table_name 
IN database_name;

De volgende zoekopdracht is vergelijkbaar met de bovenstaande:

SHOW INDEXES FROM database_name.table_name;

Houd er rekening mee dat INDEX en KEYS de synoniemen zijn van de INDEXES, IN het synoniem is van de FROM, daarom kunt u deze synoniemen in plaats daarvan gebruiken in de kolom INDEXEN TONEN. Bijvoorbeeld:

SHOW INDEX IN table_name 
FROM database_name;

Of

SHOW KEYS FROM tablename
 IN databasename;

Antwoord 13

we kunnen de indexen direct in de tabel zien als we de indexnaam weten met hieronder:

selecteer * uit all_indexes waar index_name= ‘uw index’

Other episodes