PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Postgres 9.1 vs Mysql 5.6 InnoDB?

PostgreSQL jauh lebih maju dalam hal fitur SQL.

Hal-hal yang masih belum dimiliki MySQL (dan PostgreSQL memiliki):

  • batasan yang dapat ditangguhkan

  • periksa batasan (MySQL 8.0.16 menambahkannya, MariaDB 10.2 memilikinya)

  • full outer join
    MySQL secara diam-diam menggunakan inner join dengan beberapa variasi sintaks:
    https://rextester.com/ADME43793

  • sambungan lateral

  • ekspresi reguler tidak berfungsi dengan UTF-8 (Diperbaiki dengan MySQL 8.0)

  • ekspresi reguler tidak mendukung penggantian atau substring (Diperkenalkan dengan MySQL 8.0)

  • fungsi tabel ( select * from my_function() )

  • ekspresi tabel umum (Diperkenalkan dengan MySQL 8.0)

  • kueri rekursif (Diperkenalkan dengan MySQL 8.0)

  • CTE yang dapat ditulis

  • fungsi jendela (Diperkenalkan dengan MySQL 8.0)

  • indeks berbasis fungsi

  • indeks parsial

  • SERTAKAN kolom tambahan dalam indeks (misalnya untuk indeks unik)

  • statistik multi kolom

  • pencarian teks lengkap pada tabel transaksi (MySQL 5.6 mendukung ini)

  • Fitur GIS pada tabel transaksi

  • KECUALI atau INTERSECT operator (MariaDB memilikinya)

  • anda tidak dapat menggunakan tabel sementara dua kali dalam pernyataan pilih yang sama

  • anda tidak dapat menggunakan tabel yang sedang diubah (perbarui/hapus/masukkan) dalam sub-pilihan

  • Anda tidak dapat membuat tampilan yang menggunakan tabel turunan (Kemungkinan sejak MySQL 8.0)

      create view x as select * from (select * from y);
    
  • tingkat pernyataan membaca konsistensi. Diperlukan misalnya:
    update foo set x = y, y = x atau
    update foo set a = b, a = a + 100

  • DDL transaksional

  • Pemicu DDL

  • batasan pengecualian

  • penyimpanan kunci/nilai

  • Mengindeks dokumen JSON lengkap

  • Ekspresi SQL/JSON Path (sejak Postgres 12)

  • jenis jangkauan

  • domain

  • array (termasuk indeks pada array)

  • peran (grup) untuk mengelola hak pengguna (MariaDB memilikinya, Diperkenalkan dengan MySQL 8.0)

  • kueri paralel (sejak Postgres 9.6 )

  • pembuatan indeks paralel (sejak Postgres 11)

  • tipe data yang ditentukan pengguna (termasuk batasan pemeriksaan)

  • tampilan yang terwujud

  • agregat khusus

  • fungsi jendela khusus

  • boolean yang benar tipe data
    (memperlakukan ekspresi apa pun yang dapat dikonversi ke angka bukan nol sebagai "benar" adalah tidak tipe boolean yang tepat)

Dalam hal fitur Spasial/GIS, Postgres dengan PostGIS juga jauh lebih mumpuni. Ini perbandingan yang bagus.

Tidak yakin apa yang Anda sebut "kemudahan penggunaan" tetapi ada beberapa fitur SQL modern yang tidak ingin saya lewatkan (CTE, fungsi windowing) yang akan mendefinisikan "kemudahan penggunaan" untuk saya.

Sekarang, PostgreSQL tidak sempurna dan mungkin hal yang paling menjengkelkan, untuk menyesuaikan proses VACUUM yang ditakuti untuk database penulisan yang berat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Fungsi Radian() Bekerja di PostgreSQL

  2. PostgreSQL - Ganti Entitas HTML

  3. Tambahkan Indikator Ordinal ke Tanggal di PostgreSQL

  4. Tidak ada hasil yang dikembalikan oleh kesalahan Kueri di PostgreSQL

  5. Alat GUI Teratas untuk PostgreSQL