У меня есть схема таблицы, как показано ниже:
CREATE TABLE IF NOT EXISTS `tbl_name` (
`id` bigint(20) NOT NULL,
`uid` int(11) NOT NULL COMMENT '101',
`column1` int(11) NOT NULL COMMENT 'aaa',
`column2` tinyint(4) NOT NULL COMMENT '0=a 1=b 2=c 3=d 5=e 6=f-f 7=g-g',
`vergrund` int(11) NOT NULL COMMENT '103',
`column2` varchar(4) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '108',
`land` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '109',
`column2` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '110',
`marke` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '111',
`modell` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '112',
`market` int(11) NOT NULL COMMENT '125',
`picture_status` int(11) NOT NULL,
`update_status` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `id` (`id`),
KEY `marke` (`marke`),
KEY `modell` (`marke`,`modell`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Эта таблица имеет данные около 500K. Я пытаюсь выполнить простой запрос, как показано ниже:
SELECT DISTINCT marke,
modell,
column1,
column2,
column3,
column4,
land,
column5,
plattform,
id
FROM tbl_name
WHERE vergrund IN ( "...." )
AND picture_status >= 1
AND update_status = 0
ORDER BY marke,
modell
Когда я выполняю этот запрос без заказа, он занимает около 8 секунд. Но когда я добавляю заказ, это занимает много времени, около 25 секунд. У меня есть Marke и Modell в качестве ключа тоже.
Может ли кто-нибудь помочь мне, как я могу ускорить этот запрос.