記一次生產(chǎn)MySQL數(shù)據(jù)庫(kù)批量遷移表索引
作者:波波說(shuō)運(yùn)維
由于業(yè)務(wù)需要,需遷移測(cè)試環(huán)境上的索引到正式庫(kù)上。下面簡(jiǎn)單記錄下遷移過(guò)程中的腳本。
由于業(yè)務(wù)需要,需遷移測(cè)試環(huán)境上的索引到正式庫(kù)上。下面簡(jiǎn)單記錄下遷移過(guò)程中的腳本。
1. 導(dǎo)出所有索引
包括PRIMARY KEY和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 = 'FSL_ATT_UAT'
- GROUP BY
- TABLE_NAME,
- INDEX_NAME
- ORDER BY
- TABLE_NAME ASC,
- INDEX_NAME ASC
2. 不包括PRIMARY KEY,只包含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 = 'fsl_att_uat'
- AND UPPER( INDEX_NAME ) != 'PRIMARY'
- GROUP BY
- TABLE_NAME,
- INDEX_NAME
- ORDER BY
- TABLE_NAME ASC,
- INDEX_NAME ASC
到正式庫(kù)執(zhí)行結(jié)果語(yǔ)句即可。
責(zé)任編輯:趙寧寧
來(lái)源:
今日頭條