Sometimes a subquery will be faster that the LEFT JOIN:
...
WHERE page_id NOT IN (SELECT c2.cl_from FROM categorylinks c2 WHERE
c2.cl_to = 'صفحههای_گسترده_در_دست_ساخت'
...
If that doesn't help, you'll probably have to paginate the query (split it
into smaller chunks, then recombine them).
On
I have a query that tries to find pages in article namespace that contain a
link to some page in the user/user talk namespace. Many of these result
from users signing in the articles (which is obviously not appropriate).
The query also tries to exclude pages that have a legitimate link to user