Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

Ερώτημα μου είναι γρήγορη σε MySQL και PHP σε Slow

Βελτίωση φορές το ερώτημα MySQL σας στο PHP script σας αυξάνει την ταχύτητα περιήγησης και αποτρέπει outs φορά που το script από την εμφάνιση. PHP είναι μια γλώσσα scripting με χαρακτηριστικά για να σας βοηθήσει να δημιουργήσετε δυναμικές ιστοσελίδες . MySQL είναι ένα σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων που προσφέρει πολλαπλές επιλογές στους χρήστες πρόσβαση σε βάσεις δεδομένων σε ένα διακομιστή. Ερευνήστε την αιτία της αργής ερωτήματα με τη « εξηγήσουν » δήλωση , επιτρέποντας την αργή καταγραφής ερώτημα και το χρονοδιάγραμμα απορίες σας πνεύμα τη λειτουργία " microtime " . Χρησιμοποιώντας την επέκταση ΠΟΠ - MYSQL και την αναβάθμιση της PHP και MySQL εκδόσεις μπορεί επίσης να βοηθήσει να επιταχύνει τα ερωτήματα . Οδηγίες
Η 1

Ενημέρωση PHP και MySQL σας με τις τελευταίες εκδόσεις από τις ιστοσελίδες τους . Οι παλιές εκδόσεις μερικές φορές έρχονται σε σύγκρουση με το άλλο, ενώ οι νεότερες εκδόσεις διαθέτουν διορθώσεις σφαλμάτων και είναι πιο πιθανό να είναι συμβατά μεταξύ τους . 2

Ανοίξτε το αρχείο σας " my.cnf " MySQL σε ένα πρόγραμμα επεξεργασίας κειμένου , όπως το Windows σημειωματάριο . Εντοπίσετε και να ρυθμίσετε το " log_slow_queries " επιλογή " ON" αντί για " OFF" . Ρυθμίστε το " long_query_time " σε ένα μικρό αριθμό , όπως το "1" και σημειώστε την "log - αργή - ερωτήματα " κατάλογο . Ανανέωση της υπηρεσίας σας MySQL . Η " mysql - slow.log " θα εμφανίσει τώρα ποια ερωτήματα να πάρει πολύ χρόνο για να εκτελέσει . Αυτό θα σας βοηθήσει να προσδιορίσετε πόσο συχνά το ερώτημά σας εκτελεί αργά .
Εικόνων 3

Τοποθετήστε το " εξηγήσουν " δήλωση στο ερώτημά σας πριν από μια "SELECT " δήλωση για την ανάκτηση πληροφοριών από τον optimizer για το πώς σας το ερώτημα θα εκτελεστεί . Η έξοδος που προκύπτει μπορεί να αποκαλύψει την αιτία της αργής ερώτημά σας , όπως μια ελλείπουσα δείκτη
Η 4

Ώρα PHP ερώτημά σας με τη λειτουργία " microtime " με την προσθήκη του παρακάτω κώδικα όπου βρίσκεται το ερώτημά σας : .

$ time_beg = microtime ( αλήθεια)?

//τοποθετήστε το ερώτημά σας εδώ

$ time_end = microtime ( αλήθεια)?

$ time_res = $ time_end - $ time_start ?

echo " το ερώτημα πήρε $ time_res δευτερόλεπτα " ?

Αυτό επιβεβαιώνει ότι το ερώτημα είναι η αργή μέρος και όχι σε κάποιο άλλο μέρος του κώδικά σας . Εκτελέστε τον κώδικα πολλές φορές μέχρι να έχετε μια συνεπή χρόνο . Η τιμή αυτή συγκρίνεται χρόνο όταν κάνετε οποιεσδήποτε μελλοντικές τροποποιήσεις χρονισμού
5

Ελέγξτε για τυχόν λάθη με τη λειτουργία " mysql_error " με την προσθήκη του παρακάτω κώδικα όπου βρίσκεται το ερώτημά σας : .

$ result = mysql_query ( $ query ) ?

εάν ( $ αποτέλεσμα ! ) {

$ msg = ' σφάλμα ερωτήματος : « . mysql_error ( ) . " \\ n" ?

πεθάνει ( $ msg )

}
Η 6

Χρησιμοποιήστε την επέκταση PHP pdo_mysql να αναζητούν τη βάση δεδομένων σας , αντί του κανονικού " mysql_query » ή " mysqli " λειτουργίες . Η επέκταση pdo_mysql χρησιμοποιεί εγγενή υποστήριξη παρασκευάζεται δήλωση της MySQL , η οποία μπορεί να βοηθήσει να επιταχύνει τα ερωτήματα σας . Ο κώδικας που ακολουθεί είναι ένα παράδειγμα για το πώς να στείλει ένα ερώτημα MySQL με την επέκταση pdo_mysql :

$ db_info = ' mysql : host = localhost ? Port = 3306 ? Dbname = mydb' ?

$ user = "Όνομα Χρήστη" ?

$ περάσει = «κωδικό πρόσβασης» ?

try {

$ db_handle = new ΠΟΠ ( $ db_info , $ user , $ pass) ?

}

αλιευμάτων ( PDOException $ εξαίρεση) {

printf ( " Σφάλμα : % s " , $ εξαίρεση - > GetMessage ( ) ) ?

}

$ db_handle - > setAttribute ( ΠΟΠ :: ATTR_ERRMODE , ΠΟΠ :: ERRMODE_EXCEPTION ) ?

$ db_handle - > setAttribute ( ΠΟΠ :: ATTR_AUTOCOMMIT , false) ?

$ sql = " SELECT * FROM MyTable " ?

$ result_set = $ db_handle - > ερώτημα ( $ sql ) ?

$ result_set - > setFetchMode ( ΠΟΠ :: FETCH_ASSOC ) ?

while ( $ γραμμή = $ result_set - > fetch ( ) ) {

$ data = $ γραμμή [" MyColumn "]?

}

$ result_set - > closeCursor ( ) ?
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα