I have this query:
$sql = "SELECT
catalogs_values.name as word, catalogs.name as catalog
FROM
catalogs_values
INNER JOIN
catalogs ON catalogs_values.catalog_id = catalogs.id
WHERE
catalogs_values.id NOT IN (SELECT
valueid
FROM
monitor
WHERE
userid = $user_id)
AND catalogs_values.checked = 0
ORDER BY RAND()
LIMIT 1";
In my table I have about 1 million records and my query is very slow. Can you suggest some improvements to it?