>  기사  >  데이터 베이스  >  다양한 개발 및 프로덕션 환경의 MySQl 인덱스 비교

다양한 개발 및 프로덕션 환경의 MySQl 인덱스 비교

巴扎黑
巴扎黑원래의
2017-07-19 17:21:491209검색

--1. 인덱스 정보 테이블 생성
create table `t_index_update` (
`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. t_index_update()
select
table_name,
index_name,
group_concat(distinct concat('' ', column_name, '`')에 삽입합니다. ) seq_in_index asc 구분 기호 ', '로 정렬) index_cols
from information_schema.STATISTICS
여기서 table_schema= 'elk'
and column_name<>'seq_id'
and index_name<>'primary'
group by table_name, index_name
order by table_name asc, index_name asc;
-3. 오프라인 인덱스 정보 테이블을 온라인으로 동기화
--4. 삭제 및 수정된 인덱스에 대한 삭제 문 구성
select concat('alter table `', a.table_name,'` Drop Index ', a.INDEX_NAME,'; ')
From
(
select
table_name,
index_name,
group_concat (disinct content (' '' ', C. Olumn_name, '`') 순서: seq_in_index asc 구분 기호 ', ' ) information_schema.STATISTICS
 의 index_cols
 로 table_schema= 'elk'
  및 컬럼 이름<>'seq_id'
  및 index_name<>'primary'
  그룹화: table_name, index_ name
) a
왼쪽 조인 t_index_update b 비 .table_name 및 b.index_name=a.index_name 및 b.index_cols=a.index_cols
여기서 b.index_name은 null입니다.
--5 새 인덱스에 대한 새 문을 구성합니다.
select concat( 'alter table `',a .table_name,'' 인덱스 추가 ',a.index_name,'(',a.index_cols,');')
from t_index_update a
left Join (
 select
 table_name,
 index_name,
group_concat(distinct concat('` ', 컬럼 이름, '`') seq_in_index asc 구분 기호로 정렬 ', ') index_cols
  information_schema.STATISTICS
  여기서 table_schema= 'elk'
  및 컬럼 이름<>'seq_id'
  및 index_name< ;>'primary'
table_name, index_name
) b b.table_name 및 b.index_name=a.index_name 및 b.index_cols=a.index_cols
에서 b.index_name은 null입니다.





위 내용은 다양한 개발 및 프로덕션 환경의 MySQl 인덱스 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.