设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2022-06-29 12:49 所属栏目:115 来源:互联网
导读:MySQL5.7在更改索引名字时候不会锁表,测试过程如下: 点击(此处)折叠或打开 mysql select count(*) from T_USER_INFO; +----------+ | count(*) | +----------+ | 7147528 | +----------+ 点击(此处)折叠或打开 mysql select version(); +------------+ | v

   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 tablename rename index idxname1 to idxname2的语法,在5.7之前的版本,更改索引名字只能采取先删除再创建的方法。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读