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


    目录

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

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

    3. 生成分析表的 SQL 语句


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

    1. mysql -uwxy -p12345 -S /data/18253/mysqldata/mysql.sock -e "
    2. select concat('alter table \`',table_schema,'\`.\`',table_name,'\` ',drop_index,';')
    3.   from (
    4. select table_schema, table_name, group_concat(if(index_name='PRIMARY','drop primary key',concat('drop index \`',index_name,'\`'))) drop_index
    5.   from (
    6. select distinct table_schema, table_name, index_name
    7.   from information_schema.statistics
    8.  where table_schema in ('test')
    9.    and (table_schema, table_name, index_name) not in (
    10. select t1.table_schema, t1.table_name, t1.index_name
    11.   from information_schema.statistics t1, information_schema.columns t2
    12.  where t1.table_schema in ('test')
    13.    and t1.table_schema = t2.table_schema and t1.table_name = t2.table_name and t1.column_name = t2.column_name
    14.    and t2.extra='auto_increment')) t
    15.  group by table_schema, table_name) t;" -N > drop_index.sql

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

    1. mysql -uwxy -p12345 -S /data/18253/mysqldata/mysql.sock -e "
    2. select concat('alter table \`',table_schema,'\`.\`',table_name,'\` ',create_index,';')
    3. from (
    4. select table_schema, table_name, group_concat(if(index_name='PRIMARY',concat('add primary key (',index_columns,')'),concat('add ',if(NON_UNIQUE=0, ' unique ', ' '), 'index \`',index_name,'\` (',index_columns,')'))) create_index
    5. from (
    6. select table_schema, table_name, index_name, NON_UNIQUE, group_concat(concat('\`',column_name,'\`', if(sub_part is null,'',concat('(',sub_part,')'))) order by seq_in_index) index_columns
    7. from information_schema.statistics
    8. where table_schema in ('test')
    9. and (table_schema, table_name, index_name) not in (
    10. select t1.table_schema, t1.table_name, t1.index_name
    11. from information_schema.statistics t1, information_schema.columns t2
    12. where t1.table_schema in ('test')
    13. and t1.table_schema = t2.table_schema and t1.table_name = t2.table_name and t1.column_name = t2.column_name
    14. and t2.extra='auto_increment')
    15. group by table_schema, table_name, index_name, NON_UNIQUE) t
    16. group by table_schema, table_name) t;" -N > create_index.sql

    3. 生成分析表的 SQL 语句

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

  • 相关阅读:
    MATLAB | MATLAB配色不够用 全网最全的colormap补充包来啦
    五十二、BBS项目
    1400*C. No Prime Differences(找规律&数学)
    自研的MySQL Rest Data Service(MRDS)
    PAT 甲级 A1021 Deepest Root
    linux放开8080端口
    MyBatisPlus-乐观锁概念及实现步骤
    【每日训练】连续最大和
    聊聊单点登录(SSO)中的CAS认证
    吾爱破解置顶的“太极”,太好用了吧!
  • 原文地址:https://blog.csdn.net/wzy0623/article/details/132625216