τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
https://blog.csdn.net/weixin_37519752/article/details/138728036
1. Πλεονεκτήματα
Επεκτασιμότητα εγγραφής: Και οι δύο κόμβοι μπορούν να χειριστούν λειτουργίες εγγραφής, βελτιώνοντας την επεκτασιμότητα των λειτουργιών εγγραφής.
Υψηλή διαθεσιμότητα: Εάν οποιοσδήποτε κόμβος αποτύχει, ο άλλος κόμβος μπορεί να συνεχίσει να παρέχει υπηρεσίες, συμπεριλαμβανομένων των λειτουργιών εγγραφής.
Failover: Δεν απαιτείται πολύπλοκος μηχανισμός failover καθώς και οι δύο κόμβοι είναι ενεργοί.
2. Μειονεκτήματα
Συνέπεια δεδομένων: Απαιτούνται πολύπλοκοι μηχανισμοί ανίχνευσης και επίλυσης συγκρούσεων για τη διατήρηση της συνέπειας των δεδομένων.
Απαιτήσεις δικτύου: Υπάρχουν υψηλές απαιτήσεις για σταθερότητα και καθυστέρηση δικτύου, επειδή ο συγχρονισμός σε πραγματικό χρόνο μεταξύ των κόμβων είναι ευαίσθητος στην ποιότητα του δικτύου.
Πρόσθετη επιβάρυνση: Πρόσθετη επιβάρυνση δικτύου και εισόδου/εξόδου δίσκου που προκαλείται από συγχρονισμό σε πραγματικό χρόνο.
3. Ισχύοντα σενάρια
Κατανεμημένες εφαρμογές: Εφαρμογές που απαιτούν δυνατότητες εγγραφής σε διαφορετικές γεωγραφικές τοποθεσίες.
Υψηλό φορτίο εγγραφής: Σενάρια όπου το φορτίο εγγραφής πρέπει να κατανεμηθεί για να βελτιωθεί η απόδοση.
Απαιτήσεις δεδομένων σε πραγματικό χρόνο: Εφαρμογές που απαιτούν συγχρονισμό δεδομένων σε πραγματικό χρόνο σε πολλούς κόμβους.
Ένα master και ένα slave ή ένα master και πολλαπλοί slaves που υποστηρίζονται από mysql5.7 ή παραπάνω
1. Πλεονεκτήματα
Πλεονασμός δεδομένων: Παρέχει εφεδρικό αντίγραφο ασφαλείας δεδομένων, μειώνοντας τον κίνδυνο απώλειας δεδομένων.
Βελτίωση απόδοσης: Ένας κύριος και πολλαπλοί σκλάβοι, διαφορετικοί χρήστες διαβάζουν από διαφορετικές βάσεις δεδομένων και η απόδοση βελτιώνεται.
Επεκτασιμότητα: Όταν αυξάνεται η επισκεψιμότητα, οι slave servers μπορούν εύκολα να προστεθούν χωρίς να επηρεαστεί η χρήση του συστήματος.
Εξισορρόπηση φορτίου: Ένας κύριος και πολλαπλοί σκλάβοι ισοδυναμούν με την κοινή χρήση των εργασιών κεντρικού υπολογιστή και την εκτέλεση εξισορρόπησης φορτίου.
2. Μειονεκτήματα
Καθυστέρηση δεδομένων: Δεδομένου ότι η αναπαραγωγή είναι ασύγχρονη, υπάρχει κίνδυνος καθυστέρησης αναπαραγωγής δεδομένων.
Αυξημένη πολυπλοκότητα: Η αυξημένη πολυπλοκότητα του συστήματος απαιτεί περισσότερη συντήρηση και διαχείριση.
Πρόσθετη κατανάλωση πόρων: Απαιτούνται πρόσθετοι πόροι υλικού για την ανάπτυξη υποτελών διακομιστών.
Επιπτώσεις στην απόδοση εγγραφής: Όλες οι λειτουργίες εγγραφής εκτελούνται στον κύριο διακομιστή και ενδέχεται να αποτελέσουν εμπόδιο απόδοσης.
3. Ισχύοντα σενάρια
Διαχωρισμός ανάγνωσης και εγγραφής: κατάλληλος για σενάρια όπου υπάρχουν πολύ περισσότερες λειτουργίες ανάγνωσης από πράξεις εγγραφής.
Backup δεδομένων: Χρησιμοποιείται για δημιουργία αντιγράφων ασφαλείας δεδομένων σε πραγματικό χρόνο για την αποφυγή απώλειας δεδομένων.
Υψηλές απαιτήσεις διαθεσιμότητας: κρίσιμες εφαρμογές που πρέπει να διασφαλίζουν τη συνέχεια της υπηρεσίας
1. Χρησιμοποιήστε ευρετήριο
Τα ευρετήρια είναι το κλειδί για την αποτελεσματική αναζήτηση δεδομένων σε πίνακες.Στη MySQL, μπορείτε να χρησιμοποιήσετε το B-Tree index ή το hash index για να επιταχύνετε τις λειτουργίες ερωτημάτων
Παράδειγμα:
CREATE INDEX index_name ON table_name (column1, column2, ...);
2. Βελτιστοποιήστε τις δηλώσεις ερωτήματος
Η βελτιστοποίηση των ερωτημάτων μπορεί να βελτιώσει την απόδοση της MySQL.Ο χρόνος εκτέλεσης του ερωτήματος μπορεί να μειωθεί μέσω κατάλληλων δηλώσεων ερωτήματος, ευρετηρίων και μηχανισμών προσωρινής αποθήκευσης και μπορούν να αποφευχθούν σαρώσεις πλήρους πίνακα και περιττές λειτουργίες δεδομένων.
Παράδειγμα:
# 通过使用索引和合适的查询语句
SELECT * FROM table_name WHERE column1 = "value" AND column2 = "value";
# 避免使用通配符查询,可以使用索引来加速查询
SELECT * FROM table_name WHERE column1 LIKE "value%";
# 避免在查询条件中使用函数,函数会导致索引失效
SELECT * FROM table_name WHERE DATE(column1) > "2021-01-01";
3. Βελτιστοποίηση κρυφής μνήμης
Ο μηχανισμός προσωρινής αποθήκευσης της MySQL μπορεί να βελτιώσει την απόδοση των ερωτημάτων. Ρυθμίζοντας κατάλληλα την κρυφή μνήμη ερωτήματος και την προσωρινή μνήμη συστήματος, μπορείτε να μειώσετε τις λειτουργίες IO του δίσκου και να επιταχύνετε την εκτέλεση ερωτήματος.Χρησιμοποιήστε την προσωρινή μνήμη ερωτημάτων της MySQL, το buffer pool του InnoDB κ.λπ.
# 启用查询缓存
query_cache_type = 1
query_cache_size = 64M
4. Διαχωριστικό τραπέζι
Όταν ο όγκος των δεδομένων είναι πολύ μεγάλος, μπορείτε να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε διαμερίσματα και πίνακες για να βελτιώσετε την απόδοση του ερωτήματος. Η κατάτμηση χωρίζει τα δεδομένα σε μικρότερα λογικά μέρη, καθένα από τα οποία μπορεί να αναζητηθεί και να διατηρηθεί ανεξάρτητα. Ο διαχωρισμός πίνακα είναι ο διαχωρισμός ενός μεγάλου πίνακα σε πολλούς μικρούς πίνακες και κάθε μικρός πίνακας αποθηκεύει ένα μέρος των δεδομένων.
# 分区
CREATE TABLE table_name (
...
)
PARTITION BY RANGE (column_name) (
PARTITION p1 VALUES LESS THAN (value1),
PARTITION p2 VALUES LESS THAN (value2),
...
)
# 分表
CREATE TABLE table_name (
...
)
PARTITION BY HASH (column_name) PARTITIONS 4;
5. Ρύθμιση παραμέτρων
https://blog.51cto.com/u_12196/6967500
https://blog.51cto.com/u_13259/6936668
6. Διαχείριση πισίνας σύνδεσης
Η συγκέντρωση συνδέσεων είναι μια τεχνολογία για τη διαχείριση των συνδέσεων βάσης δεδομένων που μπορεί να μειώσει αποτελεσματικά το κόστος δημιουργίας και καταστροφής συνδέσεων. Σε ένα περιβάλλον υψηλής συγχρονισμού, η πισίνα σύνδεσης μπορεί να δημιουργήσει έναν ορισμένο αριθμό συνδέσεων εκ των προτέρων και να τις αποθηκεύσει στο χώρο συγκέντρωσης συνδέσεων. Όταν έρχεται ένα νέο αίτημα, η σύνδεση μπορεί να ληφθεί από το χώρο συγκέντρωσης σύνδεσης χωρίς να χρειάζεται να δημιουργείτε ξανά τη σύνδεση κάθε φορά. Αυτό μπορεί να βελτιώσει σημαντικά τις δυνατότητες ταυτόχρονης επεξεργασίας.
7. Βελτιστοποίηση υλικού:
Χρησιμοποιήστε συσκευές υλικού υψηλής απόδοσης, όπως CPU υψηλής ταχύτητας, μνήμη μεγάλης χωρητικότητας και δίσκο υψηλής ταχύτητας, για να βελτιώσετε τις δυνατότητες επεξεργασίας της βάσης δεδομένων