• ADADADADAD

    MySQL5.7新特性之更改索引名字不会锁表[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:12:10

    作者:文/会员上传

    简介:

    MySQL5.7在更改索引名字时候不会锁表,测试过程如下:

    点击(此处)折叠或打开mysql> select count(*) from T_USER_INFO;
    +----------+
    | count(*) |
    +----------+
    | 7147528 |

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    MySQL5.7在更改索引名字时候不会锁表,测试过程如下:

    点击(此处)折叠或打开

      mysql> select count(*) from T_USER_INFO;
      +----------+
      | count(*) |
      +----------+
      | 7147528 |
      +----------+

    点击(此处)折叠或打开

      mysql> select version();
      +------------+
      | version() |
      +------------+
      | 5.7.18-log |
      +------------+

    点击(此处)折叠或打开

      mysql> show create table T_USER_INFO \G
      *************************** 1. row ***************************
      Table: T_USER_INFO
      Create Table: CREATE TABLE `T_USER_INFO` (
      `USER_NAME` varchar(50) DEFAULT NULL,
      `PHONE` varchar(50) DEFAULT NULL,
      `CARD_ID` varchar(50) DEFAULT NULL,
      KEY `idx_user_info_name` (`USER_NAME`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8
      1 row in set (0.00 sec)
    此时打开两个窗口,同时进入MySQL命令行
    窗口一:

    点击(此处)折叠或打开

      mysql> alter table T_USER_INFO rename index idx_user_info_name to idx_user_info_nm;
    窗口二:

    点击(此处)折叠或打开

      mysql> select * from T_USER_INFO where user_name='rz19930119';
    先执行更改索引名字的语句,语句执行完之前,执行第二个查询。在索引名字更改完之前,查询语句可以正常执行。

    结论:1、MySQL5.7更改索引不会锁表(尽管这是个鸡肋的特性,因为一般不会更改索引名字)
    2、MySQL5.7增加了alter table tablenamerename index idxname1 to idxname2的语法,在5.7之前的版本,更改索引名字只能采取先删除再创建的方法。




    MySQL5.7新特性之更改索引名字不会锁表.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysql5.7不会名字