Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 14231|Απάντηση: 1

[Πηγή] Η διαφορά μεταξύ engine=innodb και engine=myisam στη mysql

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 16/7/2017 11:04:57 π.μ. | | |
1/ΙΣΑΜ

Το ISAM είναι μια καλά καθορισμένη και δοκιμασμένη στο χρόνο προσέγγιση για τη διαχείριση πινάκων δεδομένων που έχει σχεδιαστεί με τη βάση δεδομένων να ερωτάται πολύ πιο συχνά από ό,τι ενημερώνεται. Ως αποτέλεσμα, το ISAM εκτελεί αναγνώσεις γρήγορα και δεν καταλαμβάνει πολλή μνήμη και πόρους αποθήκευσης. Τα δύο κύρια μειονεκτήματα του ISAM είναι ότι δεν υποστηρίζει την επεξεργασία συναλλαγών και δεν είναι ανεκτικό σε σφάλματα: εάν ο σκληρός σας δίσκος καταρρεύσει, τότε τα αρχεία δεδομένων δεν μπορούν να ανακτηθούν. Εάν χρησιμοποιείτε ISAM για κρίσιμες εφαρμογές, πρέπει πάντα να δημιουργείτε αντίγραφα ασφαλείας όλων των δεδομένων σας σε πραγματικό χρόνο και η MySQL μπορεί να υποστηρίξει τέτοιες εφαρμογές δημιουργίας αντιγράφων ασφαλείας χάρη στη δυνατότητα αναπαραγωγής της.

2/InnoDB

Παρέχει λειτουργία δυνατότητας ελέγχου συναλλαγών, η οποία διασφαλίζει ότι ένα σύνολο εντολών εκτελείται με επιτυχία ή όταν παρουσιαστεί οποιοδήποτε σφάλμα εντολής, το αποτέλεσμα όλων των εντολών επορεύεται, μπορεί να φανταστεί κανείς ότι η ικανότητα ελέγχου συναλλαγών είναι πολύ σημαντική στο e-banking. Υποστήριξη για COMMIT, ROLLBACK και άλλες λειτουργίες συναλλαγών. Η τελευταία έκδοση της Mysql σχεδιάζει ήδη να καταργήσει την υποστήριξη για BDB υπέρ του InnoDB.

Το MyIASM είναι μια νέα έκδοση των πινάκων IASM με τις ακόλουθες επεκτάσεις:
Φορητότητα σε δυαδικό επίπεδο.
Ευρετήριο στήλης NULL.
Υπάρχουν λιγότερα τμήματα για μεταβλητές γραμμές από τους πίνακες ISAM.
Υποστήριξη για μεγάλα αρχεία.
Καλύτερη συμπίεση δείκτη.
Είναι καλύτερο να υπάρχει στατιστική κατανομή;
Καλύτερη και ταχύτερη επεξεργασία auto_increment.

Ακολουθούν ορισμένες λεπτομέρειες και συγκεκριμένες διαφορές υλοποίησης:

1. Το InnoDB δεν υποστηρίζει ευρετήρια τύπου FULLTEXT.
2. Οι πίνακες δεν αποθηκεύονται στο InnoDB
συγκεκριμένες σειρές, δηλαδή εκτελέστε το select count(*) από
πίνακα, το InnoDB σαρώνει ολόκληρο τον πίνακα για να υπολογίσει πόσες σειρές υπάρχουν, αλλά το MyISAM απλώς διαβάζει τις αποθηκευμένες σειρές. Σημειώστε ότι όταν η δήλωση count(*) περιέχει
όπου κατάσταση, η λειτουργία και των δύο πινάκων είναι η ίδια.
3. Για πεδία AUTO_INCREMENT τύπου, το ευρετήριο με μόνο αυτό το πεδίο πρέπει να περιλαμβάνεται στο InnoDB, αλλά στον πίνακα MyISAM, είναι δυνατή η δημιουργία ενός ομοσπονδιακού ευρετηρίου με άλλα πεδία.
4.ΔΙΑΓΡΑΦΗ
FROM πίνακα, το InnoDB δεν αναδημιουργεί τον πίνακα, αλλά τον διαγράφει γραμμή προς σειρά.
5.ΠΙΝΑΚΑΣ ΦΟΡΤΩΣΗΣ ΑΠΟ
Η λειτουργία MASTER δεν λειτουργεί για το InnoDB, η λύση είναι να αλλάξετε πρώτα τον πίνακα InnoDB σε πίνακα MyISAM, να εισαγάγετε τα δεδομένα και, στη συνέχεια, να τον αλλάξετε στον πίνακα InnoDB, αλλά δεν ισχύει για πίνακες που χρησιμοποιούν πρόσθετες δυνατότητες InnoDB (όπως ξένα κλειδιά).

Επιπλέον, το κλείδωμα γραμμής ενός πίνακα InnoDB δεν είναι απόλυτο, εάν η MySQL δεν μπορεί να προσδιορίσει το εύρος που θα σαρωθεί κατά την εκτέλεση μιας δήλωσης SQL, ο πίνακας InnoDB θα κλειδώσει επίσης ολόκληρο τον πίνακα, όπως η ενημέρωση
σύνολο πίνακα num=1 όπου όνομα όπως " a%"

Κανένας πίνακας δεν είναι παντοδύναμος, μόνο επιλέγοντας τον κατάλληλο τύπο τραπεζιού για τον τύπο επιχείρησης μπορούμε να μεγιστοποιήσουμε τα πλεονεκτήματα απόδοσης της MySQL.

MySQL
Όταν ο Διαχειριστής δημιουργεί μια βάση δεδομένων, ο πίνακας είναι προεπιλεγμένος στον τύπο InnoDB.

InnoDB,MyISAM
Ποια είναι η διαφορά μεταξύ των δύο τύπων: Ο τύπος MyISAM δεν υποστηρίζει προηγμένη επεξεργασία, όπως η επεξεργασία συναλλαγών, ενώ ο τύπος InnoDB υποστηρίζει.
Οι πίνακες του τύπου MyISAM δίνουν έμφαση στην απόδοση, η οποία αποδίδει αρκετούς βαθμούς πιο γρήγορα από τον τύπο InnoDB, αλλά δεν παρέχει υποστήριξη συναλλαγών, ενώ το InnoDB παρέχει προηγμένες δυνατότητες βάσης δεδομένων, όπως υποστήριξη συναλλαγών, ξένα κλειδιά κ.λπ.

Τα δυαδικά αρχεία δεδομένων τύπου MyISAM μπορούν να μετεγκατασταθούν σε διαφορετικά λειτουργικά συστήματα. Δηλαδή, μπορεί να αντιγραφεί απευθείας από το σύστημα Windows σε σύστημα linux.

Τροποποιήστε τον τύπο κινητήρα του πίνακα:

ALTER
TABLE tablename ENGINE = MyISAM ;

MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed
Μέθοδος διαδοχικής πρόσβασης
Είναι η τυπική μέθοδος αποθήκευσης αρχείων και αρχείων. Σε σύγκριση με άλλες μηχανές αποθήκευσης, το MyISAM διαθέτει τα περισσότερα εργαλεία για τον έλεγχο και την επισκευή τραπεζιών.
Οι πίνακες MyISAM μπορούν να συμπιεστούν και υποστηρίζουν αναζήτηση πλήρους κειμένου. Δεν είναι ασφαλείς από συναλλακτική άποψη και δεν υποστηρίζουν ξένα κλειδιά. Εάν κάτι ανατραπεί, θα προκαλέσει ατελή επαναφορά και δεν είναι ατομικό. Εάν πραγματοποιηθεί μεγάλος αριθμός εκτελέσεων
Το TheSELECT, MyISAM είναι η καλύτερη επιλογή.

InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,

Για τύπους InnoDB που υποστηρίζουν πράγματα, ο κύριος λόγος που επηρεάζει την ταχύτητα είναι ότι η προεπιλεγμένη ρύθμιση AUTOCOMMIT είναι ενεργοποιημένη και το πρόγραμμα δεν καλεί ρητά το BEGIN
Ξεκινήστε μια συναλλαγή, με αποτέλεσμα μια αυτόματη δέσμευση για κάθε εισαγωγή, η οποία επηρεάζει σοβαρά την ταχύτητα. Μπορούμε να καλέσουμε την έναρξη πριν από την εκτέλεση της SQL και πολλές μορφές SQL ένα πράγμα (ακόμα και αν η αυτόματη υποβολή χτυπήσει
μπορεί επίσης να ενεργοποιηθεί), γεγονός που θα βελτιώσει σημαντικά την απόδοση.

1. Δείτε τις πληροφορίες του πίνακα, συμπεριλαμβανομένου του τύπου του κινητήρα που χρησιμοποιείται, της κωδικοποίησης χαρακτήρων, της δομής του πίνακα κ.λπ

Χρησιμοποιήστε αυτήν την εντολή

mysql>
εμφάνιση δημιουργίας πίνακα t1; --t1 είναι το όνομα του πίνακα

2.
Η ακόλουθη εντολή μπορεί να εκτελεστεί για τη μετάβαση των μη συναλλακτικών πινάκων σε συναλλαγές (τα δεδομένα δεν χάνονται), οι πίνακες innodb είναι πιο ασφαλείς από τους πίνακες myisam:
Αλλαγή πίνακα T1
τύπος=innodb; --t1 είναι το όνομα του πίνακα

3.
Ο πίνακας innodb δεν μπορεί να table_name με την εντολή του πίνακα επισκευής και το myisamchk -r
Αλλά μπορείτε να χρησιμοποιήσετε έναν πίνακα ελέγχου
t1 και βάση δεδομένων mysqlcheck [OPTIONS] [πίνακες]

4.
Οι ακόλουθες παράμετροι έχουν προστεθεί στη γραμμή εντολών για την εκκίνηση της βάσης δεδομένων mysql, ώστε όλοι οι πίνακες δεδομένων mysql που κυκλοφόρησαν πρόσφατα να είναι προεπιλεγμένοι για τη χρήση συναλλαγών (
Επηρεάζει μόνο τη δήλωση δημιουργίας. )
--default-table-type=InnoDB

5.
Η προσωρινή αλλαγή του προεπιλεγμένου τύπου πίνακα μπορεί να γίνει με:
set table_type=InnoDB;

Το MyISAM
Πλεονεκτήματα: γρήγορη ταχύτητα, λιγότερος χώρος στο δίσκο. Η χρήση του δίσκου μιας βάσης δεδομένων ή ενός πίνακα μπορεί να βρεθεί είτε ελέγχοντας το μέγεθος του αντίστοιχου αρχείου (φακέλου) από το λειτουργικό σύστημα είτε χρησιμοποιώντας την πρόταση SQL. ΕΜΦΑΝΙΣΗ ΚΑΤΑΣΤΑΣΗΣ ΠΙΝΑΚΑ
Μειονεκτήματα: Δεν υπάρχει μηχανισμός ακεραιότητας δεδομένων, δηλαδή δεν υπάρχει υποστήριξη για συναλλαγές και ξένα κλειδιά

Το InnoDB
Πλεονεκτήματα: Υποστήριξη συναλλαγών και ξένων κλειδιών και πλήρης μηχανισμός ακεραιότητας δεδομένων. Μπορείτε να χρησιμοποιήσετε το SHOW TABLE STATUS για να ελέγξετε την κατάληψη του δίσκου μιας βιβλιοθήκης ή ενός πίνακα
Μειονεκτήματα: εξαιρετικά αργή ταχύτητα, μεγάλος χώρος στο δίσκο. Όλες οι βιβλιοθήκες αποθηκεύονται σε ένα (συνήθως) ή περισσότερα αρχεία και το λειτουργικό σύστημα δεν μπορεί να πει πόσο χώρο έχει μια βιβλιοθήκη ή ένας πίνακας

BDB
Πλεονεκτήματα: Υποστήριξη συναλλαγών, δεν υποστηρίζουν ξένα κλειδιά, επειδή με βάση την υποστήριξη συναλλαγών, τα ξένα κλειδιά μπορούν να εφαρμοστούν έμμεσα στην πλευρά του πελάτη της βάσης δεδομένων (η οποία μπορεί να είναι η πλευρά διακομιστή του τελικού πελάτη, όπως η PHP), επομένως η ακεραιότητα των δεδομένων εξακολουθεί να είναι εγγυημένη.
Μειονεκτήματα: αργή ταχύτητα, υψηλή χρήση δίσκου. Δεν μπορείτε να υποβάλετε ερώτημα σχετικά με την κατάληψη χώρου μιας βάσης δεδομένων ή ενός πίνακα μέσω της ΕΜΦΑΝΙΣΗΣ ΚΑΤΑΣΤΑΣΗΣ ΠΙΝΑΚΑ. Το λειτουργικό σύστημα μπορεί να κατανοήσει το μέγεθος του αντίστοιχου φακέλου της βιβλιοθήκης ή του αντίστοιχου αρχείου του πίνακα, αλλά επειδή ο πίνακας BDB πρέπει πάντα να δημιουργεί ένα αρχείο καταγραφής και η πραγματική κατάληψη του δίσκου πρέπει να περιλαμβάνει το αρχείο καταγραφής, το μέγεθος μιας βιβλιοθήκης ή ενός πίνακα είναι πάντα μικρότερο από τον πραγματικό χώρο που καταλαμβάνει το λειτουργικό σύστημα.




Προηγούμενος:Τα χαρακτηριστικά τύπου πεδίου πίνακα MySQL εξηγούνται λεπτομερώς
Επόμενος:Εργαλείο πρόσβασης στη βάση δεδομένων php Medoo
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 16/7/2017 11:09:29 π.μ. |
//更改引擎
μηχανή ονόματος πίνακα αλλαγής = MyISAM;

Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com