I problem sie pojawia gdy w którymkolwiek miejscu dodaje OR us.user_level = 1 nieważne czy jest to na koncu, czy na poczatku tego drzewa zależności i niezależnie od umieszczenia nawiasów, za każdym razem gdy to dodam zapytanie trwa kilkanaście sekund, a bez tego trwa ułamek sekundy.
INSERT DELAYED IGNORE INTO przemo_read_history (user_id, forum_id, topic_id, post_id, post_time) SELECT DISTINCT us.user_id, 33, 11080, 80504, 1114438808 FROM przemo_user_group g, przemo_auth_access aa, przemo_users us WHERE aa.forum_id = 33 AND us.user_lastvisit > 1113229208 AND ( ( us.user_active = 1 AND ug.user_pending = 0 AND ug.user_id != 2 AND us.user_id != -1 AND aa.group_id = ug.group_id AND ug.user_id = us.user_id AND ( ( aa.auth_read != 0 AND aa.auth_view != 0 ) OR aa.auth_mod = 1 ) ) OR us.user_level = 1 )
Próbowalem zamiast user_level dać inną zalezność i dalej to samo
Nie wiecie co może byc powodem?
Przy tym zapytaniu dodawane jest kilkanaście wpisów a tabela ma kilka tysięcy wpisów.
Na nielicznych serwerach wyrzuca błąd zapytania SQL, juz w tej chwili nie pamiętam jaki i nie mam zapisanego, ale też powodem jest ten ostatni OR
Struktura tabeli przemo_read_history wygląda tak:
user_id mediumint(8) NOT NULL DEFAULT '0', forum_id smallint(5) UNSIGNED NOT NULL DEFAULT '0', topic_id mediumint(8) UNSIGNED NOT NULL DEFAULT '0', post_id mediumint(8) UNSIGNED NOT NULL DEFAULT '0', post_time int(11) NOT NULL DEFAULT '0', PRIMARY KEY (user_id, forum_id, topic_id, post_id, post_time), KEY user_id (user_id), KEY forum_id (forum_id), KEY topic_id (topic_id)