반응형
1. 특정 Database 및 Table의 Index 확인 쿼리
SELECT A.TABLE_SCHEMA "DB",
A.TABLE_NAME "테이블ID",
A.TABLE_COMMENT "테이블명",
B.INDEX_NAME "인덱스명",
B.COLUMN_NAME "컬럼ID",
C.DATA_TYPE "데이터타입",
CASE WHEN C.NUMERIC_SCALE IS NULL OR C.NUMERIC_SCALE = '0'
THEN CASE WHEN C.NUMERIC_PRECISION IS NOT NULL
THEN C.NUMERIC_PRECISION
ELSE C.CHARACTER_MAXIMUM_LENGTH END
ELSE CONCAT(C.NUMERIC_PRECISION, ',', C.NUMERIC_SCALE)
END "데이터사이즈",
CASE WHEN B.INDEX_NAME = 'PRIMARY' THEN 'Y' ELSE 'N' END "PRIMARY",
CASE WHEN B.NON_UNIQUE = 0 THEN 'Y' ELSE 'N' END "UNIQUE",
B.SEQ_IN_INDEX "컬럼순서"
FROM information_schema.`TABLES` A
JOIN information_schema.STATISTICS B
ON A.TABLE_SCHEMA = B.TABLE_SCHEMA
AND A.table_name = B.TABLE_NAME
JOIN information_schema.`COLUMNS` C
ON A.TABLE_SCHEMA = C.TABLE_SCHEMA
AND A.table_name = C.TABLE_NAME
AND B.COLUMN_NAME = C.COLUMN_NAME
WHERE A.table_schema = 'oyo' ## Database명
AND A.table_name = 'POM901' ## Table명
ORDER BY A.TABLE_SCHEMA, A.TABLE_NAME, CASE WHEN B.INDEX_NAME = 'PRIMARY' THEN 1 ELSE B.INDEX_NAME END, B.SEQ_IN_INDEX;
2. Index 생성 스크립트 추출 구문
SELECT
CONCAT('ALTER TABLE `',TABLE_NAME,'` ','ADD ',
IF(NON_UNIQUE = 1,
CASE UPPER(INDEX_TYPE)
WHEN 'FULLTEXT' THEN 'FULLTEXT INDEX'
WHEN 'SPATIAL' THEN 'SPATIAL INDEX'
ELSE CONCAT('INDEX `',
INDEX_NAME,
'` USING ',
INDEX_TYPE
)
END,
IF(UPPER(INDEX_NAME) = 'PRIMARY',
CONCAT('PRIMARY KEY USING ',INDEX_TYPE),
CONCAT('UNIQUE INDEX `',INDEX_NAME,'` USING ',INDEX_TYPE))
),
'(',
GROUP_CONCAT(
DISTINCT
CONCAT('`', COLUMN_NAME, '`')
ORDER BY SEQ_IN_INDEX ASC
SEPARATOR ', '
),
');'
) AS 'Show_Add_Indexes'
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'dkgcsp'
##and NON_UNIQUE = 1
GROUP BY TABLE_NAME, INDEX_NAME, NON_UNIQUE, INDEX_TYPE
ORDER BY TABLE_NAME ASC, INDEX_NAME ASC;
반응형
'Database > MYSQL' 카테고리의 다른 글
[MYSQL] Oracle to Mysql 스키마 변경 사이트 (0) | 2023.03.22 |
---|---|
[MYSQL] OS에서 과도한 CPU사용하는 MYSQL Thread 확인 (0) | 2023.03.08 |
[MYSQL] MySQL to MySQL DBLINK (FEDERATED 기능) (0) | 2023.01.19 |
[MYSQL] 이중화 구성 (MMM, MHA, Replication, Gerea cluster) (0) | 2022.11.11 |
[MYSQL] Replication (Master-Slave 동기화) (0) | 2022.11.08 |