Деякі таблиці INNODB в нашій виробничій базі збираються досягти межі INT AUTO_INCREMENT 2147483647, і нам потрібно змінити їх на BIGINT, інакше записи почнуть виходити з ладу.
Таблиці знаходяться у виробничій базі даних MySQL 5.6.19a, що працює на Amazon RDS.
Як ми можемо зробити АЛЬТЕР так, не порушуючи зчитування та вставки, які відбуваються постійно?
ALTER TABLE MYTABLE
CHANGE id
id
BIGINT NOT NULL AUTO_INCREMENT;
Ось DDL для таблиці:
CREATE TABLE `MYTABLE` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`siteId` int(11) NOT NULL,
`filter` varchar(10) NOT NULL DEFAULT 'ALL',
`date` varchar(10) NOT NULL,
`cards` varchar(250) NOT NULL,
`apples` varchar(45) NOT NULL,
`carrots` varchar(45) NOT NULL,
`corn` varchar(45) NOT NULL,
`peas` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique` (`siteId`,`filter`,`date`,`cards`),
KEY `date_k` (`date`),
KEY `cards_k` (`cards`),
KEY `apples_k` (`apples`),
KEY `siteId_k` (`siteId`)
) ENGINE=InnoDB AUTO_INCREMENT=1748961482 DEFAULT CHARSET=utf8