Apa itu MySQL?
MYSQL adalah sistem DBMS yang popular dan banyak digunakan. Nama itu diambil dari nama gadis My yang merupakan anak perempuan pengasas bersama Michael Widenius. Kod sumber MYSQL boleh didapati di bawah GNU GPL. Projek ini dimiliki dan dikendalikan oleh Oracle Corporation.
Ia adalah RDBMS (Relational Database Management System) dan berfungsi terutamanya pada model pangkalan data hubungan. Ini menjadikan pentadbiran pangkalan data lebih mudah dan fleksibel.
Apa itu PostgreSQL?
Postgre adalah sistem pengurusan pangkalan data objek-relasional (ORDBMS). Ia dikembangkan di Jabatan Sains Komputer di University of California. Postgres mempelopori banyak konsep.
Postgre adalah sistem pangkalan data hubungan kelas Enterprise. Sangat mudah untuk disiapkan dan dipasang. Ia menawarkan sokongan untuk SQL dan NoSQL. Ia mempunyai komuniti hebat yang senang melayani anda ketika menghadapi masalah semasa menggunakan PostgreSQL.
Dalam tutorial ini anda akan mengetahui lebih lanjut mengenai -
- Sejarah MySQL
- Sejarah PostgreSQL
- Mengapa menggunakan MySQL?
- Mengapa menggunakan PostgreSQL?
- Ciri-ciri MySQL
- Ciri-ciri PostgreSQL
- Perbezaan Utama Antara MySQL dan PostgreSQL
- Kelemahan penggunaan MySQL
- Kelemahan penggunaan PostgreSQL
- Apa yang lebih baik?
Sejarah MySQL
- MySQL dicipta oleh sebuah syarikat Sweden bernama MySQL AB 1995
- Sun memperoleh MySQL AB dengan harga 1 bilion dolar pada tahun 2008
- Oracle membeli Sun pada tahun 2010 dan dengan itu memperoleh MySQL
- Pada tahun 2012, MySQL dimasukkan ke dalam MariaDB oleh pengasas Michael Widenius di bawah syarikat Monty Program Ab
- MariaDB menggantikan MySQL untuk sebilangan besar pengedaran pada tahun 2013
- Program Monty Ab bergabung dengan SkySQL- 2013
- SkySQL Ab dinamakan semula menjadi MariaDB Corporation- 2014
Sejarah PostgreSQL
- INGRES dibangunkan-1977
- Michael Stonebraker dan rakan-rakannya mengembangkan Postgres- 1986
- Sokongan untuk ACID dan PL / pgSQL sebenar - 1990
- Dikeluarkan sebagai Postgres95 pada -1995
- Melancarkan semula Postgres95 sebagai PostgreSQL 6.0 - 1996
- MVCC, GUC, Join sintaks Control and Procedural Language Loader ditambahkan- 1998-2001
- Versi 7.2 hingga 8.2: Termasuk ciri seperti sokongan Skema, VACUUM Tanpa Sekatan, Peranan dan dblink - 2002-2006
- PostgreSQL 8.4 dikeluarkan pada tahun 2009
- PostgreSQL 9.0 dikeluarkan pada tahun 2010
- NYCPUG (Kumpulan Pengguna PostgreSQL New York City) bergabung dengan PgUS (persatuan PostgreSQL Amerika Syarikat) - 2013
- PGconf dianjurkan-2014
PERBEZAAN UTAMA:
- PostgreSQL adalah Sistem Pengurusan Pangkalan Data Objektif (ORDBMS) sedangkan MySQL adalah sistem DBMS yang didorong oleh komuniti.
- PostgreSQL menyokong ciri aplikasi moden seperti JSON, XML dan lain-lain sementara MySQL hanya menyokong JSON.
- Prestasi PostgreSQL dengan baik ketika menjalankan pertanyaan kompleks sedangkan MySQL berprestasi baik dalam sistem OLAP & OLTP.
- PostgreSQL lengkap dengan ACID sementara MySQL hanya mematuhi ACID apabila digunakan dengan InnoDB dan NDB.
- PostgreSQL menyokong Pandangan Terwujud sedangkan MySQL tidak menyokong Paparan Terwujud
Mengapa menggunakan MySQL?
Berikut adalah beberapa sebab penting untuk menggunakan MYSQL:
- Menyokong ciri seperti Replikasi Master-Slave, Scale-Out
- Ia menyokong Pelaporan Beban, Pengedaran Data Geografi, dll
- Overhead yang sangat rendah dengan enjin simpanan MyISAM apabila digunakan untuk aplikasi yang banyak dibaca
- Sokongan untuk mesin penyimpanan memori untuk jadual yang sering digunakan
- Cache Pertanyaan untuk penyataan yang berulang kali digunakan
- Anda boleh belajar dan menyelesaikan masalah MySQL dengan mudah dari pelbagai sumber seperti blog, kertas putih, dan buku
Mengapa menggunakan PostgreSQL?
Sebab utama penggunaan PostgreSQL adalah:
- Menawarkan ciri berguna seperti partition Table, Point in Time Recovery, Transactional DDL, dll.
- Keupayaan untuk menggunakan Kedai Kunci pihak ketiga dalam infrastruktur PKI yang lengkap
- Pembangun boleh mengubah kod sumber terbuka kerana dilesenkan di bawah BSD tanpa perlu memberikan sumbangan tambahan
- Vendor Perisian Bebas boleh mengagihkannya semula tanpa rasa takut "dijangkiti" oleh lesen sumber terbuka
- Pengguna dan Peranan dapat diberikan hak istimewa Tahap objek
- Menyokong AES, 3DES dan algoritma penyulitan data lain.
Ciri-ciri MySQL
- MySQL adalah sistem DBMS yang didorong oleh komuniti
- Sesuai dengan pelbagai platform menggunakan semua bahasa utama dan alat tengah
- Ia menawarkan sokongan untuk kawalan serentak pelbagai versi
- Mematuhi standard ANSI SQL
- Membolehkan SSL replikasi berasaskan Log dan pencetus
- Berorientasikan objek dan sesuai dengan ANSI-SQL2008
- Reka bentuk pelbagai lapisan dengan modul Bebas
- Sepenuh benang sepenuhnya, menggunakan Kernel Threads
- Pelayan tersedia dalam model DB atau pelayan pelanggan yang disematkan
- Menawarkan alat terbina dalam untuk analisis pertanyaan dan analisis ruang
- Ia dapat menangani sejumlah data, hingga 50 juta baris atau lebih
- MySQL berjalan pada banyak jenis UNIX, begitu juga pada sistem bukan UNIX lain seperti Windows dan OS / 2
Ciri-ciri PostgreSQL
- Komuniti aktif yang mempercepat pembangunannya
- Alternatif yang paling biasa untuk Oracle, DB2 dan SQL Server
- Berjalan di semua platform OS utama yang mungkin anda miliki
- MVCC menyokong sebilangan besar pengguna serentak
- Pengindeksan yang luas untuk pelaporan berprestasi tinggi
- Sokongan untuk aplikasi moden (XML dan JSON)
- Sokongan ANSI SQL untuk kemahiran / kod yang boleh dibawa
- Kunci asing menyokong penyimpanan data yang cekap
- Jadual bergabung dan pandangan untuk pengambilan data yang fleksibel
- Pencetus / Prosedur Tersimpan untuk program dan transaksi yang kompleks
- Replikasi untuk sandaran data dan skalabilitas membaca
Perbezaan Antara MySQL dan PostgreSQL
Parameter | MYSQL | PostgreSQL |
Sumber terbuka | Projek MySQL telah menyediakan kod sumbernya berdasarkan syarat-syarat Lesen Awam Umum GNU. | PostgreSQL dikeluarkan di bawah lesen PostgreSQL yang merupakan lesen Open Source percuma. Ini serupa dengan lesen BSD & MIT. |
Pematuhan asid | MySQL hanya mematuhi ACID apabila digunakan dengan mesin InnoDB dan NDB Cluster Storage. | PostgreSQL mematuhi ACID lengkap. |
Mematuhi SQL | MySQL sebahagiannya mematuhi SQL. Sebagai contoh, ia tidak menyokong kekangan cek. | PostgreSQL sebahagian besarnya mematuhi SQL. |
Sokongan Komuniti | Ini mempunyai komuniti penyumbang yang besar yang Berfokus pada mengekalkan ciri-ciri yang ada dengan ciri-ciri baru muncul sekali-sekala. | Komuniti aktif sentiasa meningkatkan ciri sedia ada sementara komuniti inovatif berusaha untuk memastikan ia tetap menjadi pangkalan data yang paling maju. Ciri canggih baru dan peningkatan keselamatan dilancarkan secara berkala. |
Persembahan | Ia kebanyakannya digunakan untuk projek berasaskan web yang memerlukan pangkalan data untuk transaksi data yang mudah. | Ia sangat digunakan dalam sistem besar di mana kelajuan membaca dan menulis adalah penting |
Paling sesuai | MySQL berfungsi dengan baik dalam sistem OLAP & OLTP apabila hanya diperlukan kelajuan membaca. | Prestasi PostgreSQL dengan baik semasa melaksanakan pertanyaan kompleks. |
Sokongan untuk JSON | MySQL mempunyai sokongan jenis data JSON tetapi tidak menyokong ciri NoSQL yang lain. | Sokong JSON dan ciri-ciri NoSQL lain seperti sokongan XML asli. Ia juga membolehkan pengindeksan data JSON untuk akses yang lebih pantas. |
Sokongan untuk pandangan yang terwujud | Menyokong pandangan dan jadual sementara. | Menyokong jadual sementara tetapi tidak menawarkan pandangan yang terwujud. |
Ekosistem | MySQL mempunyai ekosistem yang dinamik dengan varian seperti MariaDB, Percona, Galera, dll. | Postgres mempunyai pilihan mewah yang terhad. Namun, itu berubah dengan fitur baru yang diperkenalkan dalam versi terbaru. |
Nilai lalai | Nilai lalai boleh ditimpa pada tahap sesi dan tahap pernyataan | Nilai lalai hanya boleh diubah pada peringkat sistem sahaja |
Indeks B-tree | Dua atau lebih indeks B-tree dapat digunakan apabila sesuai. | Indeks B-tree digabungkan pada waktu berjalan untuk menilai adalah predikat yang ditukar secara dinamik. |
Statistik objek | Statistik objek yang cukup baik | Statistik objek yang sangat baik |
Soalan Stack Overflow | 532K | 89.3K |
Sertailah kemampuan | Hadkan keupayaan bergabung | Keupayaan bergabung yang baik |
Bintang GitHub | 3.34k | 5.6k |
Garpu | 1.6k | 2.4k |
Syarikat terkemuka yang menggunakan produk | Airbnb, Uber, Twitter | Netflix, Instagram, Groupon |
Kelemahan penggunaan MySQL
- Urus niaga yang berkaitan dengan katalog sistem tidak mematuhi ACID
- Beberapa waktu Kerosakan pelayan boleh merosakkan katalog sistem
- Tidak ada modul pengesahan yang boleh dihalang yang menghalang akaun yang diurus secara terpusat
- Tidak ada sokongan untuk peranan sehingga sukar dalam mempertahankan hak istimewa bagi banyak pengguna
- Prosedur yang disimpan tidak dapat disimpan dalam cache
- Jadual yang digunakan untuk prosedur atau pemicu selalu dikunci sebelumnya
Kelemahan penggunaan PostgreSQL
- Penyelesaian luaran semasa memerlukan keluk pembelajaran yang tinggi
- Tiada kemudahan peningkatan untuk siaran utama
- Data perlu dieksport atau direplikasi ke versi baru
- Penyimpanan berganda diperlukan semasa proses peningkatan
- indeks tidak dapat digunakan untuk mengembalikan hasil pertanyaan secara langsung
- Rancangan pelaksanaan pertanyaan tidak disimpan dalam cache
- Operasi pemuatan pukal mungkin menjadi terikat pada CPU
- Sokongan Vendor Perisian Bebas Sparse
Apa yang lebih baik?
Setelah membandingkan kedua-duanya, kami dapat mengatakan bahawa MySQL telah melakukan tugas yang baik untuk memperbaiki diri agar tetap relevan, tetapi di sisi lain untuk PostgreSQL, anda tidak memerlukan perlesenan. Ini juga menawarkan pewarisan tabel, sistem aturan, jenis data khusus, dan acara pangkalan data. Jadi, ia pasti berada di atas MySQL.