添加唯一索引查询需要很长时间才能运行

问题描述 投票:0回答:1

我最近从供应商那里接手了一个项目,它有这个 DDL。

CREATE TABLE `user` (
  `User_ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `Username` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `Password` char(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `Employee_ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `Role_ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `Last_Login` datetime DEFAULT NULL,
  `T_C` int DEFAULT '0',
  `Locale_ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `Warehouse_ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `Client_ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `Status` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `Creation_Date` datetime DEFAULT NULL,
  `Created_By` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `Update_Date` datetime DEFAULT NULL,
  `Updated_By` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `Sub_Client_ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`User_ID`),
  KEY `Employee_ID` (`Employee_ID`),
  KEY `Role_ID` (`Role_ID`),
  KEY `user_ibfk_4_idx` (`Locale_ID`) /*!80000 INVISIBLE */,
  KEY `user_ibfk_4_idx1` (`Warehouse_ID`),
  KEY `user_ibfk_3_idx` (`Client_ID`),
  KEY `user_ibfk_5_idx` (`Sub_Client_ID`),
  CONSTRAINT `user_ibfk_1` FOREIGN KEY (`Employee_ID`) REFERENCES `employee` (`Employee_ID`),
  CONSTRAINT `user_ibfk_2` FOREIGN KEY (`Role_ID`) REFERENCES `access_list` (`Role_ID`),
  CONSTRAINT `user_ibfk_4` FOREIGN KEY (`Locale_ID`) REFERENCES `locale` (`Locale_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

正如你们所见,用户名没有唯一约束,我正在尝试在用户表上添加唯一约束。

ALTER TABLE user
ADD CONSTRAINT Username UNIQUE (Username)

表只有不到10条记录,查询加载时间超长,甚至没有完成。

Mysql 版本是 8.0.33,并且在 RDS 上。我确实尝试过

FOREIGN_KEY_CHECKS
0 和 1。但是,没有运气。

有人有这方面的经验吗?

mysql amazon-rds
1个回答
0
投票

如果有人遇到此问题,重新启动 RDS 后即可解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.