Παρακολούθηση όλων των ερωτημάτων SQL στη MySQL
Ο SQL Server της Microsoft διαθέτει ένα εργαλείο που ονομάζεται Profiler το οποίο μπορείτε να χρησιμοποιήσετε για την παρακολούθηση κάθε ερωτήματος SQL που αγγίζει τη βάση δεδομένων. Αυτό είναι εξαιρετικά χρήσιμο για προγραμματιστές καθώς και για διαχειριστές βάσεων δεδομένων για την αντιμετώπιση των ακριβών ερωτημάτων που δημιουργούνται από μια εφαρμογή.
Έχοντας μετατραπεί σε MySQL σε συχνή βάση, αυτό ήταν ένα από τα πρώτα πράγματα που ήθελα να καταλάβω πώς να το κάνω. Πώς αλλιώς μπορείτε να δείτε τον πραγματικό κώδικα SQL που δημιουργείται από το WordPress ή το phpBB?
Το πρώτο πράγμα που πρέπει να κάνουμε είναι να ενεργοποιήσετε την καταγραφή ερωτημάτων στην MySQL. Να είστε προειδοποιημένοι ότι αυτό πρέπει να γίνει μόνο στην ανάπτυξη ... πραγματικά επιβραδύνει τα πράγματα κάτω για να καταγράψει κάθε ερώτημα σε ένα αρχείο.
Βρείτε και ανοίξτε το αρχείο διαμόρφωσης MySQL, συνήθως στο /etc/mysql/my.cnf στο Ubuntu. Αναζητήστε την ενότητα που αναφέρει "Καταγραφή και αναπαραγωγή"
# #
# * Καταγραφή και αναπαραγωγή
# #
# Και οι δύο τοποθεσίες περιστρέφονται από το cronjob.
# Να γνωρίζετε ότι αυτός ο τύπος αρχείου καταγραφής είναι ένας φονιάς επιδόσεων.log = /var/log/mysql/mysql.log
Απλά αποσυνδέστε τη μεταβλητή "log" για να ενεργοποιήσετε την καταγραφή. Επανεκκινήστε τη MySQL με αυτήν την εντολή:
sudo /etc/init.d/mysql επανεκκίνηση
Τώρα είμαστε έτοιμοι να ξεκινήσουμε να παρακολουθούμε τα ερωτήματα καθώς αυτά μπαίνουν. Ανοίξτε ένα νέο τερματικό και εκτελέστε αυτήν την εντολή για να μετακινηθείτε στο αρχείο καταγραφής, προσαρμόζοντας αν χρειάζεται την διαδρομή.
ουρά -f /var/log/mysql/mysql.log
Τώρα εκτελέστε την αίτησή σας. Θα δείτε τα ερωτήματα της βάσης δεδομένων να ξεκινούν από το παράθυρο του τερματικού σας. (βεβαιωθείτε ότι έχετε ενεργοποιήσει την κύλιση και το ιστορικό στο τερματικό)
Είμαι εντυπωσιασμένος, το phpbb3 έχει αρκετά σφιχτό, βελτιστοποιημένο κώδικα SQL. Το WordPress, από την άλλη πλευρά, είναι πολύ αναποτελεσματικό.