返回顶部
首页 > 资讯 > 数据库 >生成 MySQL 删除索引、创建索引、分析表的 SQL 语句
  • 565
分享到

生成 MySQL 删除索引、创建索引、分析表的 SQL 语句

mysql 2023-09-18 09:09:25 565人浏览 独家记忆
摘要

目录 1. 生成删除索引的 SQL 语句 2. 生成创建索引的 SQL 语句 3. 生成分析表的 SQL 语句 1. 生成删除索引的 sql 语句 mysql -uwxy -p12345 -S /data/18253/mysqldata

目录

1. 生成删除索引的 SQL 语句

2. 生成创建索引的 SQL 语句

3. 生成分析表的 SQL 语句


1. 生成删除索引sql 语句

mysql -uwxy -p12345 -S /data/18253/mysqldata/mysql.sock -e "select concat('alter table \`',table_schema,'\`.\`',table_name,'\` ',drop_index,';')  from (select table_schema, table_name, group_concat(if(index_name='PRIMARY','drop primary key',concat('drop index \`',index_name,'\`'))) drop_index  from (select distinct table_schema, table_name, index_name  from information_schema.statistics where table_schema in ('test')   and (table_schema, table_name, index_name) not in (select t1.table_schema, t1.table_name, t1.index_name  from information_schema.statistics t1, information_schema.columns t2 where t1.table_schema in ('test')   and t1.table_schema = t2.table_schema and t1.table_name = t2.table_name and t1.column_name = t2.column_name   and t2.extra='auto_increment')) t group by table_schema, table_name) t;" -N > drop_index.sql

2. 生成创建索引的 SQL 语句

mysql -uwxy -p12345 -S /data/18253/mysqldata/mysql.sock -e "select concat('alter table \`',table_schema,'\`.\`',table_name,'\` ',create_index,';')  from (select table_schema, table_name, group_concat(if(index_name='PRIMARY',concat('add primary key (',index_columns,')'),concat('add index \`',index_name,'\` (',index_columns,')'))) create_index  from (select table_schema, table_name, index_name, group_concat(concat('\`',column_name,'\`', if(sub_part is null,'',concat('(',sub_part,')'))) order by seq_in_index) index_columns  from information_schema.statistics where table_schema in ('test')   and (table_schema, table_name, index_name) not in (select t1.table_schema, t1.table_name, t1.index_name  from information_schema.statistics t1, information_schema.columns t2 where t1.table_schema in ('test')   and t1.table_schema = t2.table_schema and t1.table_name = t2.table_name and t1.column_name = t2.column_name   and t2.extra='auto_increment') group by table_schema, table_name, index_name) t group by table_schema, table_name) t;" -N > create_index.sql

3. 生成分析表的 SQL 语句

mysql -uwxy -p12345 -S /data/18253/mysqldata/mysql.sock -e "select concat('analyze table \`',table_schema,'\`.\`',table_name,'\`;')   from information_schema.tables  where table_schema in ('test');" -N > analyze_table.sql

来源地址:https://blog.csdn.net/wzy0623/article/details/132625216

您可能感兴趣的文档:

--结束END--

本文标题: 生成 MySQL 删除索引、创建索引、分析表的 SQL 语句

本文链接: https://www.lsjlt.com/news/411556.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作