우리는 MySQL 데이터베이스 데이터베이스, 판매 및 구매 제품을 보유하고 있습니다. 지난 3 년 동안 로그인하지 않은 비활성 사용자를 우리 웹 사이트에서 구입하거나 팔지 않은 사용자는 다른 테이블로 이동해야합니다. 각 테이블에는 수백만 개의 항목이 있습니다.MySQL은 조건에 따라 한 테이블에서 다른 테이블로 행을 이동합니다.
판매 된 품목을위한 테이블입니다. 약 40m 항목;
CREATE TABLE `sold` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`item` bigint(20) DEFAULT '0',
PRIMARY KEY (`id`),
KEY `uid` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
구매 품목 표입니다. 약 6m 항목;
CREATE TABLE `purchased` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`item` bigint(20) DEFAULT '0',
PRIMARY KEY (`id`),
KEY `uid` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
이것은 약 17m 항목의 사용자 테이블입니다.
CREATE TABLE `users` (
`uid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(32) DEFAULT '',
`email` varchar(64) DEFAULT NULL,
`lastlogin` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`uid`),
UNIQUE KEY `email_index` (`email`),
KEY `lastlogin` (`lastlogin`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
이것은 우리가
CREATE TABLE `inactiveusers` (
`uid` int(10) unsigned NOT NULL,
`name` varchar(32) DEFAULT '',
`email` varchar(64) DEFAULT NULL,
`lastlogin` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`uid`),
UNIQUE KEY `email_index` (`email`),
KEY `lastlogin` (`lastlogin`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
에 최소한의 다운 타임이를 달성하는 방법에 대한 어떤 제안을 비활성 사용자를 이동해야하는 테이블은?