Bu SQL sorgusu midemi bulandırıyor. Ben yazmadım, ama bizim sunucularda sorunların büyük bir nedeni var. Ben birden fazla sorgu içine kadar bölünmüş ve PHP (gibi, RAND ()) üzerinden işleme bazı yapmaya hazırım.
$sql = "SELECT a.code, a.ad_id, a.position, a.type, a.image, a.url, a.height, a.width
FROM " . AD_TABLE ." a, " . USER_GROUP_TABLE . " g
WHERE (a.max_views >= a.views OR a.max_views = '0')
AND (FIND_IN_SET(" .$forum_id. ", a.show_forums) > 0 OR a.show_all_forums = '1')
AND g.user_id = " . $user->data['user_id'] . "
AND FIND_IN_SET(g.group_id, a.groups)
AND FIND_IN_SET(" . $user->data['user_rank'] . ", a.ranks)
AND a.start_time < " . time() . "
AND a.end_time > " . time() . "
AND (a.clicks <= a.max_clicks OR a.max_clicks = '0')
ORDER BY rand()";
Yeesh, ben yapıştırdıktan sonra iğrenç hissediyorum ...
EDIT: Aşağıda virgülle ayrılmış yukarıdaki biçimde, örnek bir sorguda "İZAH" sonuçlarıdır:
"id","select_type","table","type","possible_keys","key","key_len","ref","rows","Extra"
1,"SIMPLE","g","ref","user_id","user_id","3","const",6,"Using temporary; Using filesort"
1,"SIMPLE","a","ALL","max_views","","","",10,"Using where"
Öyle