SELECT user_id,username,full_name,display_name,profile_pic,email,
fb_id,image1,image2,image3,image4,image5,default_pic,
street_address,locality,country,state,is_verified,is_online,
city,image6,image7,image8,image9,image10,last_login,
IFNULL((
SELECT STATUS
FROM vidioo_contacts
WHERE (contact_id = '55000'
AND user_id = vu.user_id
)
OR (contact_id = vu.user_id
AND user_id = '55000')),0) AS STATUS,
(3959 * ACOS(COS(RADIANS(0)) * COS(RADIANS(latitude)) *
COS(RADIANS(longitude) - RADIANS(0)) + SIN(RADIANS(0)) *
SIN(RADIANS(latitude)))
) AS distance
FROM vidioo_users vu
WHERE user_id != '55000'
AND gender LIKE
(SELECT CASE WHEN show_me = 'everyone'
THEN '%'
ELSE IF(LENGTH(show_me) < 1, '%', show_me)
END
FROM vidioo_users
WHERE user_id = '55000'
LIMIT 1
)
AND IFNULL(vu.is_deleted,0) != 55000
AND vu.user_id NOT IN (
SELECT DISTINCT contact_id
FROM vidioo_blocked_users
WHERE bloked_by_user = 55000
)
AND DATEDIFF(NOW(),last_login) < 7
ORDER BY last_login DESC
LIMIT 0,20
このクエリにインデックスを適用します。適用方法このクエリのインデックスを作成する
まず、デザインを正規化する – Strawberry