This one receive a constant streak (300+ per second) of operation like Size ~400,000 INSERT INTO externalAgencies.campNameHasKeyword SET date = curdate(), rtyId = 2764823, keyword = FROM_BASE64('XYZ132') ON DUPLICATE KEY UPDATE clickIn = clickIn + 1 DROP TABLE IF EXISTS `campNameHasKeyword`; CREATE TABLE `campNameHasKeyword` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `date` date NOT NULL, `rtyId` int(11) NOT NULL, `keyword` varchar(750) NOT NULL, `clickIn` mediumint(8) unsigned NOT NULL DEFAULT 1, `clickOut` mediumint(8) unsigned NOT NULL DEFAULT 0, PRIMARY KEY (`id`), UNIQUE KEY `date_rtyId_keyword` (`date`,`rtyId`,`keyword`), KEY `rtyId` (`rtyId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; I fear in the middle of the hurry I have not save stacktrace about that one -.- ********************* This is insert,never update, delete after 75 days Size ~ 764,071,894 CREATE TABLE `revenueRT` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nation` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `keyword` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `subDomain` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `device` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `dest` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `source` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `extra1` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `extra2` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `rty` int(10) unsigned DEFAULT NULL, `oCode` int(10) unsigned DEFAULT NULL, `adUnitId` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `clicksIn` int(10) unsigned NOT NULL, `clicksOut` int(10) unsigned NOT NULL, `gross` double unsigned NOT NULL, `tq` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `ts` int(10) unsigned NOT NULL, `jobId` bigint(20) unsigned DEFAULT NULL, `label` varchar(255) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `date` date GENERATED ALWAYS AS (cast(from_unixtime(`ts`) as date)) VIRTUAL, `adShown` int(10) unsigned DEFAULT 0, `dateLA` datetime GENERATED ALWAYS AS (convert_tz(from_unixtime(`ts`),'+00:00','America/Los_Angeles')) VIRTUAL, PRIMARY KEY (`id`), KEY `ts` (`ts`), KEY `date` (`date`), KEY `rty_ts` (`rty`,`ts`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; I fear in the middle of the hurry I have not save stacktrace about that one -.- ************************* This can be considered append only, we remove data once every 6 month, is not even so big is just a rollup of the revenueRT above more or less Size ~779,672 CREATE TABLE `expenditureRollup` ( `id` int(11) NOT NULL AUTO_INCREMENT, `source` varchar(255) CHARACTER SET ascii COLLATE ascii_bin NOT NULL DEFAULT 'facebook', `remoteAccountId` varchar(255) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, `ts` int(10) unsigned NOT NULL COMMENT 'to which day this record belong', `created_at` datetime NOT NULL DEFAULT current_timestamp(), `tare` float NOT NULL, `lead` int(11) NOT NULL, `imp` int(11) NOT NULL, `clicks` int(11) NOT NULL, `dateCET` date GENERATED ALWAYS AS (cast('1970-1-1 00:00:00' + interval `ts` second as date)) VIRTUAL, PRIMARY KEY (`id`), KEY `ts` (`ts`), KEY `remoteAccountId` (`remoteAccountId`), KEY `created_at` (`created_at`), KEY `dateCET` (`dateCET`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Please note one of the failing index was the dateCET which is a generated one