Δεν έχουμε χρόνο να μιλήσουμε για το πώς μπορείτε να δημιουργήσετε πίνακες βελτιστοποιηθεί ώστε να δώσει καλύτερα αποτελέσματα. Θυμάμαι μόνο ότι το δείκτη τομείς βελτίωση πολύ το χρόνο εκτέλεσης. Συζήτηση αντί για κάποια μικρή τέχνασμα για να κάνουμε πιο performant MySQL που συνήθως είναι εγκατεστημένο στις περισσότερες distro χωρίς πάρα πολλές παραμέτρους για tuning. Οι πληροφορίες παραπέμψει Linux distro αλλά μπορεί εύκολα να προσαρμοστεί σε άλλα OS.
Το αρχείο που βρίσκεται συνήθως στο / etc / my.ini.
Eempio των my.ini:
[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
set-μεταβλητή = key_buffer = 64M
set-μεταβλητή = max_user_connections = 100
set-μεταβλητή = query_cache_size = 64M
# Προεπιλ παλιό password για να χρησιμοποιούν υπόδειγμα για τη συμβατότητα με mysql 3.x
# Πελατες (αυτών που χρησιμοποιούν το πακέτο συμβατότητας mysqlclient10).
old_passwords = 1
[mysql.server]
χρήστη = mysql
basedir = / var / lib
[mysqld_safe]
πλανώμαι-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
buffers: η ζώνη οποιαδήποτε incremeto θα πάρετε μια βάση δεδομένων πολύ γρηγορότερα. Τότε που οι buffers βασίζεται στην μνήμη που είναι διαθέσιμη, λαμβάνοντας υπόψη την κατανάλωση από το λειτουργικό σύστημα και άλλες εφαρμογές και υπηρεσίες σε χρήση. Αν διαθέσει πολύ μνήμη ενώ δεν έχουν μια διάταξη μπορεί να τρέχει σε συνολική απόδοση του συστήματος.
Wait_timeout: αντιπροσωπεύει το χρονικό διάστημα πριν να είναι κλειστό για να συνδέεται αυτόματα MySQL λόγω αδράνειας. Κάτω αριθμός είναι καλύτερη απόδοση. Σε αυτήν την περίπτωση θα πρέπει επίσης να παίξουν το είδος των συνδέσεων και των υποτιθέμενη χρόνο να υπολογίσει τη βέλτιστη παράμετρο.
back_log: Ελέγχει τον τρόπο με τον οποίο πολλές ταυτόχρονες συνδέσεις μπορεί να διατηρηθεί, ενώ δημιουργεί νέες Mysql νήμα. Η μείωση του αριθμού, τόσο μεγαλύτερη είναι η ταχύτητα. Προσοχή, είναι εύκολο να μην υποβαθμίσει την επίδοση αυτή η παράμετρος, με τη σωστή χρήση αυτού του μόνον όταν είναι απολύτως απαραίτητο.
Max_user_connections: Ορίζει τον μέγιστο αριθμό συνδέσεων που επιτρέπονται σε ένα χρήστη. Είναι πολύ χρήσιμο σε συστήματα στα οποία το ίδιο διακομιστή MySQL έχει πρόσβαση σε πολλούς χρήστες ταυτόχρονα.
Delayed_queue_size: αριθμό των γραμμών σε συνδυασμό με το INSERT ΚΑΘΥΣΤΕΡΗΜΕΝΗ. Θα πρέπει να είναι μικρότερη κατά μήκος των γραμμών, την ταχύτερη Mysql.
Sort_buffer_size: καθορίζει το μέγεθος της μνήμης που διατίθενται για την εφαρμογή των ρητρών ORDER BY, GROUP BY και. Για να καταστεί πιο αποτελεσματική ερωτήματα που έθεσε αυτή η παράμετρος σε μια τιμή μεγαλύτερη από 2Μ.
Table_cache: ελέγχει τον αριθμό των ανοικτών πίνακες για όλα τα νήματα, αυξάνοντας τη μεταβλητή αυτή θα αυξηθούν οι πίνακες φορτώνονται ταυτόχρονα και την εκτέλεση των Mysql θα είναι πολύ πιο γρήγορα. Προσοχή σε αυτή την παράμετρο, τα λειτουργικά συστήματα έχουν ένα όριο δείκτες σε αρχεία που ανοίγονται με τη μία, εάν υπερβαίνουν το όριο αυτό θα μπορεί να αναλάβει σε οποιαδήποτε δυσλειτουργία του συστήματος.
Thread_cache_size: Ορίζει τον αριθμό των νημάτων να διατηρεί στο cache. Το χαρακτηριστικό αυτό καθιστά τη χρήση των κλωστές πολύ γρήγορα.
Η εντολή SHOW STATUS μας βοηθά να παρακολουθούν σε πραγματικό χρόνο, αυτές οι μεταβλητές, οι οποίες περισσότερο από άλλους για να μας βοηθήσει να καταλάβουμε τι είναι οι πιο σημαντικές βελτιώσεις μπορούμε να κάνουμε:
- Handler_read_first: Αναφέρεται πόσες φορές η πρώτη εγγραφή διαβάστηκε από ένα τραπέζι. Αν συμβεί αυτό, συχνά, αυτό σημαίνει ότι ο πίνακας δεν ήταν δείκτη σωστά.
- Innodb_buffer_pool_wait_free: δείχνει τον αριθμό των φορών που MySQL πρέπει να περιμένουμε την έξαψη των σελίδων της μνήμης. Αν η τιμή που επιστρέφεται είναι υψηλή τότε το μέγεθος του buffer στην πισίνα, δεν έχει ρυθμιστεί σωστά για να γράψετε το ποσό των πράξεων υποστεί από το διακομιστή.
- Key_reads: δείχνει τον αριθμό των φορών που MySQL έχει πρόσβαση στο σύστημα αρχείων της βάσης δεδομένων για τα ευρετήρια. Αυτό επιβραδύνει την ταχύτητα της εκτέλεσης, το ερώτημα, επομένως αν αυτή η τιμή είναι υψηλή, τότε σημαίνει ότι το κλειδί του buffer είναι πολύ μικρό και θα πρέπει να αυξηθεί.
- Max_used_connections: Υποδεικνύει το μέγιστο αριθμό συνδέσεων που MySQL έπρεπε να αρχίσει κατά τη διάρκεια της τελευταίας εκκίνησης. Από τη μία πλευρά, αυτό αντιπροσωπεύει μια πραγματική αναφοράς (που βοηθά να αποφασίσει το μέγιστο αριθμό συνδέσεων που μπορεί να υποστηρίξει τον server) και το άλλο παρουσιάζεται ως ένα βολικό κυκλοφορίας αναλυτή.
- Open_tables: Υποδηλώνει τον τρέχοντα αριθμό των πινάκων ανοικτή. Η αξία αυτή θα πρέπει να αναλυθούν σε συνδυασμό με το μέγεθος της μνήμης cache του πίνακα. Κανονικά, το μέγεθος των table_cache που θα πρέπει να είναι υψηλότερο για αυτή τη μεταβλητή. Εάν η αξία των open_tables είναι πολύ χαμηλότερη από table_cache να αποφευχθούν προβλήματα επιδόσεων, είναι, επομένως, επίσης να μειώσει το μέγεθος της μνήμης cache. Εάν η αξία των open_tables είναι πολύ υψηλό και πλησιάζει το μέγεθος της μνήμης cache, τότε το θέσετε table_cache.
- Select_full_join: Ο αριθμός των πλήρως ενταχθεί MySQL έχει διεξαχθεί για να ανταποκριθεί στα αιτήματα των πελατών της. Μια υψηλή τιμή δηλώνει ότι αντί να χρησιμοποιεί ευρετήρια, MySQL έχει αναγκαστεί να εκτελέσει πλήρη ένταξη. Αυτό υποδηλώνει την ανάγκη για μια ισχυρή δείκτης αυτών των πινάκων.
- Slow_queries: αναφέρει τον αριθμό των ερωτημάτων που διήρκεσε περισσότερο από το συνηθισμένο να γίνει. Η υψηλή τιμή θα πρέπει να μας οδηγήσει να αναλύσουμε το Slow Query Log να προσδιορίσει ποια είναι η αργή ερώτημα να βελτιστοποιήσετε.
- Threads_connected: Αναφέρεται ο συνολικός αριθμός των πελατών που είναι συνδεδεμένοι με το διακομιστή σε μια τέτοια στιγμή.
- Created_tmp_disk_tables: αναφέρει τον αριθμό των προσωρινών πινάκων, οι οποίες δημιουργήθηκαν στο δίσκο αντί της μνήμης. Δεδομένου ότι η πρόσβαση των πινάκων σε ένα δίσκο είναι συνήθως πιο αργή από τη μνήμη, το περιεχόμενο της μεταβλητής είναι αντιστρόφως ανάλογη προς την ταχύτητα με την οποία εκτελείτε αναζητήσεις την εντολή CREATE TEMPORARY ΘΕΣΗ.
- Uptime: Εμφανίζει τον αριθμό των δευτερολέπτων για την υπηρεσία.



































