У вас есть какие-либо идеи, как оптимизировать этот запрос:оптимизация запросов, SQL
SELECT
*
FROM
branch
WHERE
wid IN (
SELECT
MAX(wid) AS wid
FROM
branch
WHERE
og = 'XXX'
AND st = 'YYY'
AND guide IN ('...')
AND uid IN ('...')
GROUP BY
uid,
guide
)
AND stp = 1;
CREATE TABLE `branch` (
`wid` bigint(20) unsigned NOT NULL,
`branchid` int(11) NOT NULL,
`stp` int(11) NOT NULL,
`st` varchar(16) DEFAULT NULL,
`og` varchar(32) DEFAULT NULL,
`uid` bigint(20) unsigned NOT NULL,
...
PRIMARY KEY (`wid`,`branchid`,`stp`),
KEY `branch_guide_d` (`guide`,`d`),
KEY `branch_st_c` (`st`,`c`),
KEY `branch_st_m` (`st`,`m`),
KEY `branch_uid_guide_wid` (`uid`,`guide`,`wid`),
)
Пожалуйста, добавьте запросы 'CREATE TABLE' и' CREATE INDEX'. –
И избегать запросов IN и использовать внутренние соединения – Gokul
Вместо SELECT «*» вы можете использовать только требуемое имя столбца. –