Seite 1 von 1

SQL-Fehler beim Leeren der Boardcache

Verfasst: 02.01.2012 16:25
von LittleMeg
Hallo,
ich habe gerade beim Leeren meiner Forencache folgende SQL-Fehlermeldung bekommen.
SQL ERROR [ mysqli ]

The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay [1104]

SQL

SELECT a.forum_id, ug.user_id, g.group_id FROM (php_01_acl_options o, php_01_user_group ug, php_01_groups g, php_01_acl_groups a) LEFT JOIN php_01_acl_roles_data r ON (a.auth_role_id = r.role_id) WHERE (o.auth_option_id = a.auth_option_id OR o.auth_option_id = r.auth_option_id) AND ((a.auth_setting = 0 AND r.auth_setting IS NULL) OR r.auth_setting = 0) AND a.group_id = ug.group_id AND g.group_id = ug.group_id AND NOT (ug.group_leader = 1 AND g.group_skip_auth = 1) AND ug.user_id IN (194, 252, 53, 62, 69, 111, 91, 133) AND ug.user_pending = 0 AND o.auth_option LIKE 'm\\_%'

BACKTRACE

FILE: includes/db/mysqli.php
LINE: 163
CALL: dbal->sql_error()

FILE: includes/functions_admin.php
LINE: 2395
CALL: dbal_mysqli->sql_query()

FILE: includes/acp/acp_main.php
LINE: 344
CALL: cache_moderators()

FILE: includes/functions_module.php
LINE: 507
CALL: acp_main->main()

FILE: adm/index.php
LINE: 74
CALL: p_master->load_active()
Da ich die Cache vor fast genau 24 Stunden noch problemfrei geleert hatte und heute nur nach dem Ändern der logo.png nochmal geleert habe, kann ich mir das noch weniger erklären (ansonsten hab ich schon seit Monaten keine Änderungen mehr vorgenommen, die das so plötzlich hervorgerufen haben könnten)
Ist das ein Speicherplatzproblem (was eigetlich nicht sein kann, weil ich letzten Sommer noch Platz aufgestockt hatte und danach noch Großaufräumaktionen gefahren habe)

Ist die aktuellste phpbb Version und auch die eingebauten Mods sollten noch auf dem aktuellsten Stand sein.

Re: SQL-Fehler beim Leeren der Boardcache

Verfasst: 02.01.2012 18:14
von Miriam
Ich kann irgenwie nicht sehen, was diese Query mit dem Cache zu tun haben sollte. Aber du kannst gern in deiner Datenbank das hier mittels phpMyAdmin probieren:

Code: Alles auswählen

EXPLAIN SELECT a.forum_id, ug.user_id, g.group_id FROM (php_01_acl_options o, php_01_user_group ug, php_01_groups g, php_01_acl_groups a) LEFT JOIN php_01_acl_roles_data r ON (a.auth_role_id = r.role_id) WHERE (o.auth_option_id = a.auth_option_id OR o.auth_option_id = r.auth_option_id) AND ((a.auth_setting = 0 AND r.auth_setting IS NULL) OR r.auth_setting = 0) AND a.group_id = ug.group_id AND g.group_id = ug.group_id AND NOT (ug.group_leader = 1 AND g.group_skip_auth = 1) AND ug.user_id IN (194, 252, 53, 62, 69, 111, 91, 133) AND ug.user_pending = 0 AND o.auth_option LIKE 'm\\_%' 
Und zeige mal bitte den Output her. (gern als Screenshot)

Re: SQL-Fehler beim Leeren der Boardcache

Verfasst: 04.01.2012 21:04
von LittleMeg
Ich kanns mir nicht erklären. Ich hatte deine Antwort gestern sehr spät entdeckt und wollte bevor ich was an der Datenbank mache noch schnell ein Backup ziehen. Weil ich sowieso schon dabei war, hab ich nochmal Cache leeren versucht und es ging fehlermeldungsfrei. Verstehe wer will, vielleicht hatte die Datenbank Schluckauf ;-) Ich wollte mich nur zurückmelden, um Danke zu sagen.

Re: SQL-Fehler beim Leeren der Boardcache

Verfasst: 04.01.2012 22:05
von Miriam
Falls du dieses Phänomen noch einmal bemerken solltest, kannst du die angemeckerte Query kopieren und mit

Code: Alles auswählen

EXPLAIN SELECT ....
in der DB ausführen und schauen, was so zurückgegeben wird... und es hier dann posten.