Τι είναι η MySQL;
Το MYSQL είναι ένα δημοφιλές και ευρέως χρησιμοποιούμενο σύστημα DBMS. Το όνομα προέρχεται από το όνομα κοριτσιού My που είναι κόρη του συνιδρυτή Michael Widenius. Ο πηγαίος κώδικας του MYSQL είναι διαθέσιμος στο GNU GPL. Το έργο ανήκει και συντηρείται από την Oracle Corporation.
Είναι ένα RDBMS (Relational Database Management System) και λειτουργεί κυρίως στο σχεσιακό μοντέλο βάσης δεδομένων. Κάνει τη διαχείριση της βάσης δεδομένων ευκολότερη και πιο ευέλικτη.
Τι είναι το PostgreSQL;
Το Postgre είναι ένα σύστημα διαχείρισης βάσεων δεδομένων αντικειμενικών σχέσεων (ORDBMS). Αναπτύχθηκε στο Τμήμα Επιστήμης Υπολογιστών στο Πανεπιστήμιο της Καλιφόρνια. Οι Postgres πρωτοστάτησαν σε πολλές ιδέες.
Το Postgre είναι ένα σύστημα σχεσιακής βάσης δεδομένων Enterprise-class. Είναι εύκολο να εγκαταστήσετε και να εγκαταστήσετε. Προσφέρει υποστήριξη για SQL και NoSQL. Έχει μια υπέροχη κοινότητα που θα χαρεί να σας εξυπηρετήσει όταν αντιμετωπίζετε προβλήματα κατά τη χρήση του PostgreSQL.
Σε αυτό το σεμινάριο θα μάθετε περισσότερα για -
- Ιστορία της MySQL
- Ιστορικό της PostgreSQL
- Γιατί να χρησιμοποιήσετε τη MySQL;
- Γιατί να χρησιμοποιήσετε το PostgreSQL;
- Χαρακτηριστικά του MySQL
- Χαρακτηριστικά του PostgreSQL
- Βασικές διαφορές μεταξύ MySQL και PostgreSQL
- Μειονεκτήματα της χρήσης MySQL
- Μειονεκτήματα της χρήσης PostgreSQL
- Τι είναι καλύτερο?
Ιστορία της MySQL
- Η MySQL δημιουργήθηκε από μια σουηδική εταιρεία με την επωνυμία MySQL AB 1995
- Η Sun απέκτησε το MySQL AB για 1 δισεκατομμύριο δολάρια το 2008
- Η Oracle αγόρασε τη Sun το 2010 και αποκτώντας έτσι MySQL
- Το 2012, η MySQL μετατράπηκε στο MariaDB από τον ιδρυτή Michael Widenius στο πλαίσιο της εταιρείας Monty Program Ab
- Το MariaDB αντικαθιστά τη MySQL για τις περισσότερες διανομές το 2013
- Το Monty Program Ab συγχωνεύτηκε με το SkySQL- 2013
- Το SkySQL Ab μετονομάστηκε σε MariaDB Corporation- 2014
Ιστορικό της PostgreSQL
- Το INGRES αναπτύχθηκε το 1977
- Ο Michael Stonebraker και οι συνεργάτες του ανέπτυξαν το Postgres- 1986
- Υποστήριξη για πραγματικό ACID και PL / pgSQL - 1990
- Κυκλοφόρησε ως Postgres95 το -1995
- Επανέλαβε το Postgres95 ως PostgreSQL 6.0 - 1996
- MVCC, GUC, Join Syntax Controls and Procedural Language Loader προστέθηκε- 1998-2001
- Έκδοση 7.2 έως 8.2: Συμπεριλαμβανόμενες λειτουργίες όπως υποστήριξη σχήματος, VACUUM χωρίς αποκλεισμό, ρόλοι και dblink - 2002-2006
- Το PostgreSQL 8.4 κυκλοφόρησε το 2009
- Το PostgreSQL 9.0 κυκλοφόρησε το 2010
- Το NYCPUG (Ομάδα χρηστών PostgreSQL της Νέας Υόρκης) συμμετέχει στο PgUS (ένωση PostgreSQL των Ηνωμένων Πολιτειών) - 2013
- Διοργάνωση PGconf-2014
ΒΑΣΙΚΗ ΔΙΑΦΟΡΑ:
- Το PostgreSQL είναι ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων Αντικειμένου (ORDBMS), ενώ το MySQL είναι ένα σύστημα DBMS που βασίζεται στην κοινότητα
- Η PostgreSQL υποστηρίζει σύγχρονες δυνατότητες εφαρμογών όπως JSON, XML κ.λπ. ενώ η MySQL υποστηρίζει μόνο JSON.
- Η απόδοση PostgreSQL είναι καλή κατά την εκτέλεση σύνθετων ερωτημάτων, ενώ η MySQL αποδίδει καλά σε συστήματα OLAP & OLTP.
- Η PostgreSQL είναι πλήρης συμβατή με ACID, ενώ η MySQL είναι συμβατή με ACID μόνο όταν χρησιμοποιείται με τα InnoDB και NDB.
- Η PostgreSQL υποστηρίζει Υλικές προβολές ενώ η MySQL δεν υποστηρίζει Υλοποιημένες προβολές.
Γιατί να χρησιμοποιήσετε τη MySQL;
Εδώ είναι μερικοί σημαντικοί λόγοι για τη χρήση του MYSQL:
- Υποστηρίζει λειτουργίες όπως Master-Slave Replication, Scale-Out
- Υποστηρίζει Offload Reporting, Geographic Data Distribution κ.λπ.
- Πολύ χαμηλή επιβάρυνση με κινητήρα αποθήκευσης MyISAM όταν χρησιμοποιείται για εφαρμογές που διαβάζονται κυρίως
- Υποστήριξη για μηχανή αποθήκευσης μνήμης για πίνακες που χρησιμοποιούνται συχνά
- Ερώτημα Cache για επαναλαμβανόμενες δηλώσεις
- Μπορείτε εύκολα να μάθετε και να αντιμετωπίσετε το MySQL από διάφορες πηγές, όπως ιστολόγια, λευκές βίβλους και βιβλία
Γιατί να χρησιμοποιήσετε το PostgreSQL;
Οι κύριοι λόγοι για τη χρήση του PostgreSQL είναι:
- Προσφέρει χρήσιμες λειτουργίες όπως διαχωρισμός πίνακα, ανάκτηση σημείου σε χρόνο, συναλλαγή DDL κ.λπ.
- Δυνατότητα χρήσης κλειστών καταστημάτων τρίτου μέρους σε πλήρη υποδομή PKI
- Οι προγραμματιστές μπορούν να τροποποιήσουν τον κώδικα ανοιχτού κώδικα καθώς έχει άδεια χρήσης βάσει BSD χωρίς να χρειάζεται να συνεισφέρουν βελτιώσεις
- Οι Ανεξάρτητοι Προμηθευτές Λογισμικού μπορούν να το αναδιανείμουν χωρίς το φόβο να "μολυνθούν" από μια άδεια ανοιχτού κώδικα
- Σε χρήστες και ρόλους μπορούν να εκχωρηθούν δικαιώματα σε επίπεδο αντικειμένου
- Υποστηρίζει AES, 3DES και άλλους αλγόριθμους κρυπτογράφησης δεδομένων.
Χαρακτηριστικά του MySQL
- Το MySQL είναι ένα σύστημα DBMS που βασίζεται στην κοινότητα
- Συμβατό με διάφορες πλατφόρμες που χρησιμοποιούν όλες τις μεγάλες γλώσσες και το middleware
- Προσφέρει υποστήριξη για έλεγχο ταυτόχρονης πολλαπλής έκδοσης
- Συμβατό με το πρότυπο ANSI SQL
- Επιτρέπει SSL αναπαραγωγής βάσει Log και σκανδάλης
- Αντικειμενοστρεφή και συμβατή με ANSI-SQL2008
- Πολυεπίπεδη σχεδίαση με ανεξάρτητες μονάδες
- Πλήρως πολλαπλών νημάτων, χρησιμοποιώντας νήματα πυρήνα
- Διακομιστής διαθέσιμος σε ενσωματωμένο μοντέλο διακομιστή DB ή πελάτη
- Προσφέρει ενσωματωμένα εργαλεία για ανάλυση ερωτημάτων και ανάλυση χώρου
- Μπορεί να χειριστεί οποιαδήποτε ποσότητα δεδομένων, έως και 50 εκατομμύρια σειρές ή περισσότερες
- Η MySQL λειτουργεί σε πολλές ποικιλίες του UNIX, καθώς και σε άλλα συστήματα εκτός UNIX όπως τα Windows και το OS / 2
Χαρακτηριστικά του PostgreSQL
- Μια ενεργή κοινότητα που επιταχύνει την ανάπτυξή της
- Πιο κοινή εναλλακτική λύση για Oracle, DB2 και SQL Server
- Τρέχει σε όλες τις μεγάλες πλατφόρμες λειτουργικού συστήματος που μπορεί να έχετε
- Το MVCC υποστηρίζει μεγάλο αριθμό ταυτόχρονων χρηστών
- Εκτεταμένη ευρετηρίαση για αναφορές υψηλής απόδοσης
- Υποστήριξη για σύγχρονες εφαρμογές (XML και JSON)
- Υποστήριξη ANSI SQL για μεταφερόμενες δεξιότητες / κώδικα
- Υποστήριξη ξένων κλειδιών για αποτελεσματική αποθήκευση δεδομένων
- Ο πίνακας συνδέει και προβολές για ευέλικτη ανάκτηση δεδομένων
- Ενεργοποιήσεις / Αποθηκευμένες διαδικασίες για σύνθετα προγράμματα και συναλλαγές
- Αντιγραφή για δημιουργία αντιγράφων ασφαλείας δεδομένων και δυνατότητα κλιμάκωσης ανάγνωσης
Διαφορές μεταξύ MySQL και PostgreSQL
Παράμετρος | MYSQL | PostgreSQL |
Ανοιχτή πηγή | Το έργο MySQL έχει καταστήσει τον πηγαίο κώδικα διαθέσιμο σύμφωνα με τους όρους της άδειας GNU General Public License. | Η PostgreSQL κυκλοφορεί υπό την άδεια PostgreSQL που είναι δωρεάν άδεια Open Source. Αυτό είναι παρόμοιο με τις άδειες BSD & MIT. |
Συμμόρφωση με οξύ | Το MySQL είναι συμβατό με ACID μόνο όταν χρησιμοποιείται με κινητήρες InnoDB και NDB Cluster Storage. | Η PostgreSQL είναι πλήρης συμβατή με ACID. |
Συμβατό με SQL | Το MySQL είναι εν μέρει συμβατό με το SQL. Για παράδειγμα, δεν υποστηρίζει περιορισμό ελέγχου. | Το PostgreSQL είναι σε μεγάλο βαθμό συμβατό με το SQL. |
Υποστήριξη κοινότητας | Έχει μια μεγάλη κοινότητα συντελεστών που επικεντρώνονται κυρίως στη διατήρηση των υπαρχόντων λειτουργιών με νέες δυνατότητες που εμφανίζονται περιστασιακά. | Η ενεργή κοινότητα βελτιώνει συνεχώς τα υπάρχοντα χαρακτηριστικά, ενώ η καινοτόμος κοινότητα προσπαθεί να διασφαλίσει ότι παραμένει η πιο προηγμένη βάση δεδομένων. Κυκλοφορούν τακτικά νέες δυνατότητες αιχμής και βελτιώσεις ασφαλείας. |
Εκτέλεση | Χρησιμοποιείται κυρίως για έργα που βασίζονται στο Διαδίκτυο και χρειάζονται μια βάση δεδομένων για απλές συναλλαγές δεδομένων. | Χρησιμοποιείται ιδιαίτερα σε μεγάλα συστήματα όπου οι ταχύτητες ανάγνωσης και εγγραφής είναι σημαντικές |
Ταιριάζει καλύτερα | Η MySQL αποδίδει καλά σε συστήματα OLAP & OLTP όταν απαιτούνται μόνο ταχύτητες ανάγνωσης. | Η απόδοση της PostgreSQL κατά την εκτέλεση σύνθετων ερωτημάτων. |
Υποστήριξη για JSON | Η MySQL διαθέτει υποστήριξη τύπου δεδομένων JSON αλλά δεν υποστηρίζει καμία άλλη δυνατότητα NoSQL. | Υποστηρίξτε το JSON και άλλες λειτουργίες NoSQL όπως η εγγενής υποστήριξη XML. Επιτρέπει επίσης την ευρετηρίαση δεδομένων JSON για ταχύτερη πρόσβαση. |
Υποστήριξη για υλοποιημένες προβολές | Υποστηρίζει υλοποιημένες προβολές και προσωρινούς πίνακες. | Υποστηρίζει προσωρινά τραπέζια αλλά δεν προσφέρει υλοποιημένες προβολές. |
Οικοσύστημα | Η MySQL έχει ένα δυναμικό οικοσύστημα με παραλλαγές όπως MariaDB, Percona, Galera κ.λπ. | Η Postgres είχε περιορισμένες επιλογές υψηλού επιπέδου. Ωστόσο, αλλάζει με τις νέες δυνατότητες που εισήχθησαν στην τελευταία έκδοση. |
Προεπιλεγμένες τιμές | Οι προεπιλεγμένες τιμές μπορούν να αντικατασταθούν σε επίπεδο περιόδου σύνδεσης και σε επίπεδο δήλωσης | Οι προεπιλεγμένες τιμές μπορούν να αλλάξουν μόνο σε επίπεδο συστήματος |
Δείκτες B-tree | Δύο ή περισσότερα ευρετήρια B-tree μπορούν να χρησιμοποιηθούν όταν είναι κατάλληλο. | Τα ευρετήρια B-tree που συγχωνεύονται κατά τον χρόνο εκτέλεσης για αξιολόγηση είναι δυναμικά μετατρεπόμενα δεδομένα. |
Στατιστικά αντικειμένων | Πολύ καλά στατιστικά αντικειμένων | Πολύ καλά στατιστικά αντικειμένων |
Ερωτήσεις Stack Overflow | 532 χιλ | 89.3Κ |
Συμμετοχή δυνατοτήτων | Περιορίστε τις δυνατότητες συμμετοχής | Καλές δυνατότητες συμμετοχής |
GitHub αστέρια | 3.34 χιλ | 5.6 χιλ |
Πιρούνια | 1.6 χιλ | 2.4k |
Διακεκριμένες εταιρείες που χρησιμοποιούν το προϊόν | Airbnb, Uber, Twitter | Netflix, Instagram, Groupon |
Μειονεκτήματα της χρήσης MySQL
- Οι συναλλαγές που σχετίζονται με τον κατάλογο συστήματος δεν είναι συμβατές με ACID
- Κάποια στιγμή Ένα σφάλμα διακομιστή μπορεί να καταστρέψει τον κατάλογο συστήματος
- Δεν υπάρχει δυνατότητα ελέγχου ταυτότητας με δυνατότητα σύνδεσης που να εμποδίζει τον κεντρικό διαχειριζόμενο λογαριασμό
- Δεν υπάρχει υποστήριξη για ρόλους, επομένως είναι δύσκολο να διατηρηθούν προνόμια για πολλούς χρήστες
- Οι αποθηκευμένες διαδικασίες δεν είναι προσωρινές
- Οι πίνακες που χρησιμοποιούνται για τη διαδικασία ή τη σκανδάλη είναι πάντα κλειδωμένοι
Μειονεκτήματα της χρήσης PostgreSQL
- Οι τρέχουσες εξωτερικές λύσεις απαιτούν υψηλή καμπύλη μάθησης
- Δεν υπάρχει δυνατότητα αναβάθμισης για σημαντικές εκδόσεις
- Τα δεδομένα πρέπει να εξαχθούν ή να αναπαραχθούν στη νέα έκδοση
- Απαιτείται διπλή αποθήκευση κατά τη διαδικασία αναβάθμισης
- Δεν είναι δυνατή η χρήση ευρετηρίων για την άμεση επιστροφή των αποτελεσμάτων ενός ερωτήματος
- Τα σχέδια εκτέλεσης ερωτημάτων δεν αποθηκεύονται στην κρυφή μνήμη
- Οι εργασίες μαζικής φόρτωσης ενδέχεται να δεσμεύονται από τη CPU
- Υποστήριξη Sparee Independent Software Vendor
Τι είναι καλύτερο?
Αφού συγκρίνουμε και τα δύο, μπορούμε να πούμε ότι η MySQL έχει καταφέρει να βελτιώσει τον εαυτό της για να διατηρεί σχετική, αλλά από την άλλη πλευρά για την PostgreSQL, δεν χρειάζεστε καμία άδεια. Προσφέρει επίσης κληρονομιά πίνακα, συστήματα κανόνων, προσαρμοσμένους τύπους δεδομένων και συμβάντα βάσης δεδομένων. Έτσι, σίγουρα βρίσκεται πάνω από τη MySQL.