mysql导出索引语句

这个SQL查询用于生成ALTER TABLE语句,为指定数据库表的各个列添加索引。它考虑了索引是否唯一,以及使用全文索引、空间索引或普通索引。查询结果是一个用于执行的SQL脚本,可以方便地为表增加索引以优化查询性能。
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 = '数据库名称' 
	AND TABLE_NAME='表名称' 
GROUP BY
	TABLE_NAME,
	INDEX_NAME 
ORDER BY
	TABLE_NAME ASC,
	INDEX_NAME ASC;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值