SELECT * FROM (
SELECT qid,via,date,uid, via as cool FROM questions WHERE via != '' AND (uid = 3 OR `uid` IN (SELECT uid_followed FROM followers WHERE uid_follower = 3 AND unfollowed = 0))
AND via NOT IN (SELECT qid FROM votes WHERE uid = 3)
UNION ALL
SELECT qid,via,date,uid, qid as cool FROM questions WHERE via = '' AND (uid = 3 OR `uid` IN (SELECT uid_followed FROM followers WHERE uid_follower = 3 AND unfollowed = 0))
AND qid NOT IN (SELECT qid FROM votes WHERE uid = 3)
) as a
GROUP BY cool
ORDER BY date DESC
3 秒以上かかります。列 qid と via に正しい列にインデックスを配置しました。複雑なのは、一意の qid が必要であり、一部の行には qid がありますが、実際には via フィールドを介して他の qid へのハイパーリンクになっていることです。また、qid は uid = 3 (userID 3) の投票にほとんどエントリがありません。さらに、年代順にソートする必要があります。