MySQL5.7新特性之更改索引名字不会锁表
发布时间:2022-06-29 13:13:37 所属栏目:MySql教程 来源:互联网
导读: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之前的版本,更改索引名字只能采取先删除再创建的方法。 (编辑:百客网 - 百科网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐



