RT,今晚上本来准备上线服务。上线之前先准备把数据库相关内容更新.
SQL如下:
CREATE TABLE `t_1` ( `id` bigint(8) NOT NULL AUTO_INCREMENT, xxxxxxxxxxxxxxxxxxxxxxxx PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `t_2` ( `id` bigint(8) NOT NULL AUTO_INCREMENT, xxxxxxxxxxxxxxxxxxxx PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE t_3 drop index `relation_key`;
很简单的2个新表及去掉一个表的唯一键约束.
没想到就跪舔了…
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Couldn’t get connection because we are at maximum connection count (200/200) and there are none available
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:238)
问题很简单,我很白痴。。。
本来是因为业务需要去掉唯一性。
然后就drop unique key.
就这个玩意儿有大问题!
我们的这个表记录很多,上千万,对待这种表,索引那是必须的。。
之前这个unique key不仅是唯一的作用另外还是一个索引。。
因此drop后立马爆炸.
解决办法很简单,先加索引,在去除唯一约束。
还能说啥呢。。。不专业!!!活该背锅。。