MySQL Query error

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
philos
Δημοσιεύσεις: 264
Εγγραφή: 30 Αύγ 2007 23:32

MySQL Query error

Δημοσίευση από philos » 01 Μάιος 2014 23:44

Υπάρχει πρόβλημα με το ακόλουθο query σε ένα script που δείχνει τα TOP 5 βαθμολογημένα θέματα της εβδομάδας. Συγκεκριμένα, όταν τρέχει το query, επιστρέφεται το ακόλουθο error:

Κώδικας: Επιλογή όλων

            SELECT post.postid, post.userid AS postuserid, post.username AS postusername, thread.title AS title, thread.forumid, thread.threadid, sum1, thread.replycount, thread.views, thread.dateline
            FROM post AS post INNER JOIN
            (
                SELECT sc_thumbs_post.postid, COUNT(sc_thumbs_post.thumb) AS sum1
                FROM sc_thumbs_post AS sc_thumbs_post
                LEFT JOIN thread AS thread ON (thread.firstpostid = sc_thumbs_post.postid)
                WHERE YEARWEEK(from_unixtime(sc_thumbs_post.dateline), 0) = YEARWEEK(CURRENT_DATE, 0) AND (sc_thumbs_post.thumb = 1)
                GROUP BY sc_thumbs_post.postid
            ) tmp ON post.postid = tmp.postid
            LEFT JOIN thread AS thread ON (thread.firstpostid = tmp.postid)
            LEFT JOIN forum AS forum ON (thread.forumid = forum.forumid)
            WHERE thread.threadid IS NOT NULL AND forum.forumid NOT IN ('1', '4', '73', '99', '8', '9', '13', '88', '93', '91', '95', '90', '94', '89', '96', '97', '14', '15', '16', '17', '18', '19', '20', '27', '50', '76', '78', '77', '26', '28', '75', '29', '33', '30', '87', '98', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '80', '79', '81', '82', '84', '31', '21', '22', '51', '52', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '23', '24', '25', '35', '0')
            GROUP BY thread.threadid
            ORDER BY sum1 DESC, thread.lastpost DESC
            LIMIT 5;

Κώδικας: Επιλογή όλων

MySQL Error   : MySQL server has gone away
Error Number  : 2006
Που είναι το πρόβλημά του; Μήπως φταίνε τα limits του server; Διαφορετικά, πως μπορώ να το βελτιστοποιήσω/διορθώσω;

Ευχαριστώ :)

Άβαταρ μέλους
philos
Δημοσιεύσεις: 264
Εγγραφή: 30 Αύγ 2007 23:32

MySQL Query error

Δημοσίευση από philos » 02 Μάιος 2014 15:59

Καμιά ιδέα; :)

Άβαταρ μέλους
nirvana
Δημοσιεύσεις: 241
Εγγραφή: 01 Σεπ 2005 18:28
Τοποθεσία: Αγ. Παρασκευή

MySQL Query error

Δημοσίευση από nirvana » 03 Μάιος 2014 13:28

Αν θες να ελέγξεις τα limits, με λιγο ψαξιμο βρήκα αυτά:

* wait_timeout στο my.cnf
* max_allowed_packet στο my.cnf

Αν και εγώ όταν αρχίζουν τα πολύπλοκα nested selects και joins, σε queries που θα εκτελούνται συχνά στην εφαρμογή μου και παίρνουν ώρα να εκτελεστουν, προτιμώ να κάνω de-normalize καποιο table για να το αποφύγω.

Νομίζω η θυσία του de-normalization είναι πολύ μικρότερη από την θυσία του να εκνευρίσεις τους χρήστες σου και να μην ξαναπατήσουν :p

Εδώ έχει έναν καλό ορισμό του κατα την γνώμη μου:
http://stackoverflow.com/questions/2349 ... erformance

Παραδείγματα θα βρεις εύκολα στο internet.

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες