--1. Indexinformationstabelle erstellen
Tabelle `t_index_update` erstellen (
`table_name` varchar(20) COLLATE gbk_bin DEFAULT NULL,
`index_name` varchar(20) COLLATE gbk_bin DEFAULT NULL,
`index_cols` varchar(100) COLLATE gbk_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk COLLATE=gbk_bin;
--2. In Offline-Indexinformationstabelle einfügen
in t_index_update() einfügen
wählen Sie
table_name,
index_name,
group_concat(distinct concat(''', columns_name, ''' order by seq_in_index asc Separator ', ') as index_cols
from information_schema.STATISTICS aus
wobei table_schema= 'elk'
und Spaltenname<>'seq_id'
und index_name<>'primary'
gruppieren nach Tabellenname, Indexname
Reihenfolge nach Tabellenname aufsteigend, Indexname aufsteigend;
--3. Offline-Indexinformationstabelle mit Online synchronisieren
--4. Löschanweisungen für gelöschte und geänderte Indizes erstellen
select concat('alter table `',a.table_name,' `drop index ' ,a.index_name,';')
from
(
select
table_name,
index_name,
group_concat(distinct concat(''', columns_name, ' `') order durch seq_in_index asc-Trennzeichen ', ') als index_cols
aus information_schema.STATISTICS
, wobei table_schema= 'elk'
und Column_name<>'seq_id'
und index_name<>' Primary' gruppieren nach Tabellenname, Indexname
) a
Linksverknüpfung t_index_update b auf b.table_name und b.index_name=a.index_name und b.index_cols=a.index_cols
wobei b.index_name null ist;
--5. Erstellen Sie eine neue Anweisung, um einen neuen Index hinzuzufügen
select concat('alter table `',a.table_name,'' add index ',a.index_name,'(',a. index_cols,') ;')
from t_index_update a
left join (
select
table_name,
index_name,
group_concat(distinct concat(''', columns_name, ''' ) order by seq_in_index asc-Trennzeichen ', ') als index_cols
aus information_schema.STATISTICS
, wobei table_schema= 'elk'
und columns_name<>'seq_id'
und index_name<>'primary'
group nach Tabellenname, Indexname
) b auf b.table_name und b.index_name=a.index_name und b.index_cols=a.index_cols
wobei b.index_name null ist;
Das obige ist der detaillierte Inhalt vonVergleich von MySQL-Indizes in verschiedenen Entwicklungs- und Produktionsumgebungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!