I have a scenario where I need to Insert a new record and increase a sub-id. The Query is very slow. Exist any better Solutions for this?
Table
CREATE TABLE `link_` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`duid` bigint(20) DEFAULT NULL,
`domain_id` int(11) DEFAULT NULL
PRIMARY KEY (`id`),
KEY `domain_id` (`domain_id`),
KEY `duid` (`duid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
Solution 1
INSERT INTO link_ (duid, domain_id)
SELECT
IFNULL(MAX(duid), 0) + 1 AS duid, 5
FROM
link_
WHERE domain_id = 5;
Solution 2
INSERT INTO link_ (duid, domain_id)
SELECT
IFNULL(duid, 0) + 1 AS duid, 5
FROM
link_
WHERE domain_id = 5
ORDER BY duid DESC
LIMIT 1;