记一次生产MySQL数据库批量迁移表索引
2023-03-14 22:22:31 时间
由于业务需要,需迁移测试环境上的索引到正式库上。下面简单记录下迁移过程中的脚本。
1. 导出所有索引
包括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
到正式库执行结果语句即可。
相关文章
- 苹果 Safari 浏览器 Bug :网站可实时跟踪用户最近浏览活动,涉及 iOS 15 和 iPadOS 15 所有版本
- 数据表明iPhone用户不急于从iOS 14更新至iOS 15
- 5G手机为什么比4G手机耗电快?
- 没有预想受欢迎!iOS 15更新率:发布80天有近60%设备安装
- 资深设计师是怎样用「帕累托原则」做设计决策的?
- 手机网络和Wi-Fi,哪个更耗手机电量?
- 手机加速度计数据可被随意读取,iOS关不掉权限,安卓这次能限制
- 苹果新版iOS迎来重磅功能!这还是第一次
- 为什么手机电量低于20%时会提醒你充电?中国电信这样解释
- 一篇了解 BLE 蓝牙开发详解
- 原来手机恢复出厂设置影响这么大!你都了解吗?看明白再操作了
- 手机送去维修前,记得开启它!帮你保护隐私数据,防止泄露
- 存储被无故占满!苹果发布iOS15.1第二个测试版:继续修补Bug
- 如果你换新手机,旧手机必做这两步处理!以免隐私数据泄露
- 卖旧手机前必做这2步!避免隐私泄露,删除也没用,快来学学
- 设计师进阶必读!产品数据规划指南
- Facebook 的 Superpack 数据压缩技术可将 Android App 大小减少 20%
- 粗放生长时代结束,高精地图收紧灰色地带
- iOS15中的重磅更新!苹果一直以来都很注重这个功能
- iOS15发烫严重?解决办法在这里,拒绝玄学