Perbezaan antara PG dan MySQL: 1. PG menyokong lebih banyak jenis data, manakala MySQL tidak menyokong jenis data JSON dan XML 2. PG mempunyai kebolehskalaan yang lebih tinggi, manakala MySQL mempunyai kebolehskalaan yang lemah ; enjin storan tunggal, manakala MySQL menyokong berbilang enjin storan 4. PG lebih sesuai untuk pertanyaan kompleks dan situasi konkurensi tinggi, dan dalam senario penggunaan tertentu, MySQL mungkin mempunyai prestasi yang lebih baik, dsb. PG dan MySQL adalah kedua-dua sistem pengurusan pangkalan data hubungan yang sangat baik Pilih mengikut keperluan dan senario penggunaan tertentu.
Sistem pengendalian untuk tutorial ini: Sistem Windows 10, mysql versi 8.0, komputer Dell G3.
PostgreSQL (sering dipanggil PG) dan MySQL kedua-duanya adalah sistem pengurusan pangkalan data hubungan (RDBMS) yang digunakan secara meluas. Walaupun kedua-duanya adalah pangkalan data hubungan yang digunakan untuk menyimpan dan mengurus data, ia sangat berbeza dalam beberapa aspek, seperti yang diterangkan di bawah:
1 Jenis data: PostgreSQL menyokong lebih banyak jenis data, seperti julat Jenis, jenis alamat rangkaian , jenis data JSON dan XML, dsb. MySQL tidak menyokong jenis ini.
2 Kebolehperluasan: PostgreSQL sangat boleh dikembangkan dan boleh menggunakan jenis data tersuai, fungsi dan pengendali untuk melanjutkan fungsinya. MySQL mempunyai kebolehskalaan yang lemah dan memerlukan penggunaan pemalam atau prosedur tersimpan untuk mencapai fungsi yang serupa.
3. Keserasian ACID: PostgreSQL ialah pangkalan data yang mematuhi ACID sepenuhnya, manakala MySQL hanya menyokong ACID dalam enjin storan tertentu (seperti InnoDB).
4. Kawalan Pertukaran Berbilang Versi (MVCC): PostgreSQL menggunakan MVCC untuk menyediakan tahap pengasingan transaksi lanjutan, yang bermaksud bahawa berbilang transaksi boleh membaca dan menulis ke pangkalan data pada masa yang sama tanpa mengganggu satu sama lain. MySQL juga menyokong MVCC, tetapi pelaksanaannya berbeza.
5. Enjin storan: MySQL menyokong berbilang enjin storan, termasuk MyISAM dan InnoDB. Setiap enjin storan mempunyai ciri, kelebihan dan keburukan tersendiri. PostgreSQL hanya menyokong satu enjin storan.
6. Keserasian standard SQL: PostgreSQL lebih mematuhi piawaian SQL, manakala MySQL menggunakan pelaksanaannya sendiri dalam beberapa aspek.
7 Prestasi: Dalam beberapa senario penggunaan tertentu, MySQL mungkin berprestasi lebih baik. Tetapi dalam kes pertanyaan kompleks dan konkurensi tinggi, PostgreSQL mungkin berprestasi lebih baik.
Ringkasnya, PG dan MySQL adalah kedua-dua sistem pengurusan pangkalan data hubungan yang sangat baik dengan ciri, kelebihan dan kekurangan yang berbeza. Mana satu yang anda pilih bergantung pada keperluan khusus anda dan senario penggunaan.
MySQL
MySQL agak muda, pertama kali muncul pada tahun 1994. Ia mendakwa sebagai pangkalan data sumber terbuka yang paling popular. MySQL ialah M dalam LAMP (pakej perisian untuk pembangunan web, termasuk Linux, Apache, dan Perl/PHP/Python). Kebanyakan aplikasi yang dibina pada tindanan LAMP menggunakan MySQL, termasuk aplikasi terkenal seperti WordPress, Drupal, Zend dan phpBB.
Dari awal, MySQL telah direka bentuk untuk menjadi bahagian belakang pelayan web yang pantas, menggunakan Kaedah Capaian Urutan Indeks (ISAM) yang pantas dan tidak menyokong ACID. Selepas pembangunan awal yang pesat, MySQL mula menyokong lebih banyak enjin storan dan melaksanakan ACID melalui enjin InnoDB. MySQL juga menyokong enjin storan lain, menyediakan fungsi jadual sementara (menggunakan enjin storan MEMORY), dan melaksanakan pangkalan data bacaan berkelajuan tinggi melalui enjin MyISAM Selain itu, terdapat enjin storan teras lain dan enjin pihak ketiga.
MySQL mempunyai dokumentasi yang sangat kaya, termasuk banyak manual rujukan percuma berkualiti tinggi, buku dan dokumen dalam talian, serta latihan dan sokongan daripada Oracle dan vendor pihak ketiga.
MySQL telah mengalami perubahan dalam pemilikan dan beberapa peristiwa dramatik dalam beberapa tahun kebelakangan ini. Ia pada asalnya dibangunkan oleh MySQL AB dan kemudian dijual kepada Sun untuk $1 bilion pada tahun 2008. Sun telah diperoleh oleh Oracle pada tahun 2010. Oracle menyokong berbilang versi MySQL: Standard, Perusahaan, Klasik, Kluster, Terbenam dan Komuniti. Sebahagian daripada mereka percuma untuk dimuat turun, manakala yang lain berbayar. Kod terasnya adalah berdasarkan lesen GPL dan lesen komersial tersedia untuk pembangun dan pengilang yang tidak mahu menggunakan lesen GPL.
Kini, terdapat banyak lagi pangkalan data untuk dipilih berdasarkan kod MySQL asal, kerana beberapa pembangun teras MySQL telah mengeluarkan garpu MySQL. Salah seorang pencipta MySQL asal, Michael "Monty" Widenius, nampaknya menyesal menjual MySQL kepada Sun, jadi dia membangunkan fork MySQL sendiri, MariaDB, yang percuma dan berlesen di bawah GPL. Drizzle, garpu yang dicipta oleh pembangun MySQL terkenal Brian Aker, telah ditulis semula secara meluas, terutamanya dioptimumkan untuk aplikasi berbilang CPU, awan, rangkaian dan konkurensi tinggi.
PostgreSQL
PostgreSQL mengebil dirinya sebagai pangkalan data sumber terbuka paling maju di dunia. Sesetengah peminat PostgreSQL mengatakan ia setanding dengan Oracle, tetapi tanpa tanda harga yang tinggi dan perkhidmatan pelanggan yang sombong. Ia mempunyai sejarah yang panjang, pada asalnya dibangunkan di University of California, Berkeley, pada tahun 1985 sebagai pengganti kepada pangkalan data Ingres.
PostgreSQL ialah projek sumber terbuka sepenuhnya dipacu komuniti yang diselenggarakan oleh lebih 1,000 penyumbang di seluruh dunia. Ia menyediakan versi tunggal yang berfungsi sepenuhnya, tidak seperti MySQL yang menyediakan berbilang edisi komuniti, edisi komersial dan edisi perusahaan yang berbeza. PostgreSQL adalah berdasarkan lesen BSD/MIT percuma, dan organisasi boleh menggunakan, menyalin, mengubah suai dan mengedarkan semula kod tersebut selagi mereka memberikan notis hak cipta.
Kebolehpercayaan ialah keutamaan tertinggi PostgreSQL. Ia terkenal dengan kualiti kukuh dan kejuruteraan bunyinya, menyokong transaksi tinggi, aplikasi kritikal misi. Dokumentasi PostgreSQL sangat baik, dengan sejumlah besar manual dalam talian percuma dan manual rujukan yang diarkibkan untuk versi lama. Sokongan komuniti PostgreSQL sangat baik, begitu juga sokongan komersial daripada vendor bebas.
Ketekalan dan integriti data juga merupakan ciri keutamaan tinggi PostgreSQL. PostgreSQL menyokong sepenuhnya ciri ACID, menyediakan jaminan keselamatan yang kukuh untuk akses pangkalan data, dan menggunakan sepenuhnya alatan keselamatan perusahaan, seperti Kerberos dan OpenSSL. Anda boleh menentukan semakan anda sendiri untuk memastikan kualiti data berdasarkan peraturan perniagaan anda sendiri. Di antara banyak ciri pengurusan, pemulihan titik dalam masa (PITR) ialah ciri hebat Ini ialah ciri ketersediaan tinggi yang fleksibel yang menyediakan keupayaan untuk mencipta sandaran panas dan syot kilat serta memulihkan untuk pemulihan kegagalan. Tetapi ini bukan semua PostgreSQL Projek ini juga menyediakan beberapa kaedah untuk mengurus PostgreSQL untuk mencapai ketersediaan tinggi, pengimbangan beban, replikasi, dll., supaya anda boleh menggunakan fungsi yang sesuai dengan keperluan khusus anda.
Platform
Kedua-dua MySQL dan PostgreSQL muncul pada beberapa tapak Web trafik tinggi:
MySQL: Slashdot, Twitter, Facebook dan Wikipedia
PostgreSQL: Yahoo menggunakan pangkalan data PostgreSQL yang diubah suai untuk mengendalikan ratusan juta acara setiap hari, serta Reddit dan Disqus
Kedua-dua MySQL dan PostgreSQL dijalankan pada berbilang sistem pengendalian, seperti Linux, Unix dan Mac OS X dengan Windows. Kesemuanya adalah sumber terbuka dan percuma, jadi satu-satunya kos semasa mengujinya ialah masa dan perkakasan anda. Ia fleksibel dan berskala serta boleh digunakan pada kedua-dua sistem kecil dan sistem teragih yang besar. MySQL pergi lebih jauh daripada PostgreSQL dalam satu kawasan, iaitu, tentakelnya meluas ke medan terbenam, yang dicapai melalui libmysqld. PostgreSQL tidak menyokong aplikasi terbenam dan masih mematuhi seni bina klien/pelayan tradisional.
MySQL secara amnya dianggap sebagai bahagian belakang pangkalan data yang pantas untuk tapak web dan aplikasi, berkeupayaan membaca pantas dan bilangan operasi pertanyaan yang banyak, tetapi ia tidak memuaskan dari segi ciri kompleks dan semakan integriti data.
PostgreSQL ialah pangkalan data berciri penuh yang serius untuk aplikasi perusahaan transaksi, menyokong ciri ACID yang kukuh dan banyak pemeriksaan integriti data. Kedua-duanya sangat pantas pada tugas tertentu, dan tingkah laku enjin storan MySQL yang berbeza agak berbeza. Enjin MyISAM adalah yang terpantas kerana ia hanya melakukan beberapa semakan integriti data Ia sesuai untuk tapak yang mempunyai banyak operasi baca belakang, tetapi ia adalah bencana untuk pangkalan data baca/tulis yang mengandungi data sensitif kerana jadual MyISAM Ia mungkin akhirnya. menjadi rosak. MySQL menyediakan alatan untuk membaiki jadual MySQL, tetapi untuk data sensitif, InnoDB, yang menyokong ciri ACID, adalah pilihan yang lebih baik.
Sebaliknya, PostgreSQL ialah pangkalan data bersepadu sepenuhnya dengan enjin storan tunggal. Anda boleh meningkatkan prestasi dengan melaraskan parameter dalam fail postgresql.conf, serta melaraskan pertanyaan dan urus niaga. Dokumentasi PostgreSQL menyediakan pengenalan yang sangat terperinci kepada penalaan prestasi.
Kedua-dua MySQL dan PostgreSQL sangat boleh dikonfigurasikan dan boleh dioptimumkan untuk tugasan yang berbeza. Kesemuanya menyokong sambungan untuk menambah fungsi tambahan.
Salah tanggapan biasa ialah MySQL lebih mudah dipelajari daripada PostgreSQL. Sistem pangkalan data hubungan adalah sangat kompleks, dan keluk pembelajaran kedua-dua pangkalan data ini sebenarnya serupa.
Keserasian Standard
PostgreSQL direka untuk keserasian SQL (standard semasa ialah ANSI-SQL:2008). MySQL serasi dengan kebanyakan SQL, tetapi ia juga mempunyai sambungan sendiri yang boleh menyokong ciri NoSQL, yang diperkenalkan dalam manual rujukan. Terdapat kebaikan dan keburukan bagi setiap pendekatan. Pematuhan dengan piawaian menjadikan pentadbir pangkalan data, pembangun pangkalan data dan pembangun aplikasi lebih selesa kerana ini bermakna mereka hanya perlu mempelajari satu set piawaian, ciri dan arahan. Ini akan menjimatkan masa, meningkatkan kecekapan dan tidak dikunci ke dalam vendor tertentu.
Orang yang menyokong penggunaan fungsi tersuai bukan standard berpendapat bahawa ini membolehkan penggunaan pantas ciri baharu tanpa perlu menunggu proses standard selesai. Piawaian ANSI/ISO sentiasa berkembang, jadi keserasian standard juga merupakan sasaran yang berubah-ubah: pangkalan data hubungan yang terkenal Microsoft SQL Server, Oracle dan IBM DB2 hanya serasi sebahagiannya dengan piawaian.
Perbezaan antara MySQL dan PostgreSQL (pangkalan data pg)
MySQL ialah DBMS yang dicipta oleh pembangun aplikasi manakala PostgreSQL ialah DBMS yang dicipta oleh pembangun pangkalan data.
Dengan kata lain, MySQL cenderung kepada perspektif pengguna dan menjawab soalan "Apakah masalah yang anda ingin selesaikan" manakala PostgreSQL cenderung kepada perspektif teori dan menjawab soalan "Bagaimana pangkalan data harus menyelesaikan masalah"; ".
MySQL biasanya menyerahkan pengesahan kesahihan data kepada pelanggan; PostgreSQL adalah lebih ketat dari segi kesahihan. Sebagai contoh, apabila memasukkan masa "2012-02-30" ke dalam MySQL, ia akan berjaya, tetapi hasilnya akan menjadi "0000-00-00"; PostgreSQL tidak membenarkan nilai ini dimasukkan.
Secara amnya, PostgreSQL dianggap kaya dengan ciri, manakala MySQL dianggap lebih pantas. Tetapi sudut pandangan ini pada asasnya adalah soal MySQL 4.x / PostgreSQL 7.x Kini keadaan telah berubah dengan ketara dalam kelajuan dalam versi 9.x, dan ciri MySQL juga semakin meningkat.
Secara seni bina, MySQL dibahagikan kepada dua lapisan: lapisan atas SQL dan beberapa enjin storan (seperti InnoDB, MyISAM). PostgreSQL hanya mempunyai satu enjin storan yang menyediakan kedua-dua ciri.
Kedua-dua sistem pangkalan data ini boleh dioptimumkan dan disesuaikan mengikut situasi aplikasi Sukar untuk menyatakan dengan tepat yang mana satu mempunyai prestasi yang lebih baik. Fokus projek MySQL adalah pada kelajuan dari awal, manakala tumpuan pada PostgreSQL adalah pada ciri dan spesifikasi dari awal.
Kelebihan PostgreSQL berbanding MySQL
1 Pelaksanaan standard SQL adalah lebih baik daripada MySQL, dan pelaksanaan fungsinya lebih ketat
2 Ia lebih baik daripada MySQL dan mempunyai keupayaan untuk menyimpan rancangan pelaksanaan secara tempatan;
4. Jadual utama PG disimpan dalam jadual timbunan, manakala MySQL menggunakan indeks untuk menyusun jadual, yang boleh menyokong jumlah data yang lebih besar daripada MySQL. 5. Replikasi primer dan sekunder PG ialah replikasi fizikal Berbanding dengan replikasi logik berasaskan binlog MySQL, ketekalan data lebih dipercayai, prestasi replikasi lebih tinggi, dan ia mempunyai kesan yang kurang pada prestasi hos. 6. Mekanisme pemalam enjin storan MySQL mempunyai masalah mekanisme penguncian yang kompleks yang menjejaskan konkurensi, tetapi PG tidak wujud. Kelebihan MySQL berbanding PG: 1 Mekanisme MVCC Innodb berdasarkan segmen rollback adalah lebih baik daripada mekanisme MVCC berasaskan XID di mana data lama dan baharu PG disimpan bersama. Data baharu dan lama disimpan bersama, dan VACUUM perlu dicetuskan dengan kerap, yang akan membawa IO berlebihan dan objek pangkalan data mengunci overhed, menyebabkan keupayaan serentak keseluruhan pangkalan data berkurangan. Selain itu, jika VACUUM tidak dibersihkan dalam masa, ia boleh menyebabkan pengembangan data; 2. MySQL menggunakan indeks untuk menyusun jadual ini sangat sesuai untuk pertanyaan dan operasi pemadaman berdasarkan padanan kunci utama terdapat kekangan pada reka bentuk struktur jadual; 3 Pengoptimum MySQL adalah agak mudah, dan pelaksanaan jadual sistem, pengendali dan jenis data sangat diperkemas, yang sangat sesuai untuk operasi pertanyaan mudah; >4. Keperluan pelaksanaan jadual partition MySQL Pelaksanaan partition berasaskan jadual warisan yang lebih baik daripada PG terutamanya ditunjukkan dalam perbezaan besar dalam prestasi pemprosesan apabila bilangan partition mencapai ribuan atau puluhan ribu.
5. Mekanisme pemalam enjin storan MySQL menjadikan senario aplikasinya lebih meluas Sebagai contoh, selain innodb sesuai untuk senario pemprosesan transaksi, myisam sesuai untuk senario pertanyaan data statik.
Atas ialah kandungan terperinci Apakah perbezaan antara pangkalan data pg dan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!