PostgreSQL ve MySQL Veritabanı Kıyaslaması
PostgreSQL'e karşı MySQL, açık kaynaklı bir ilişkisel veritabanı yönetim sistemi seçildiğinde önemli bir karardır. Hem PostgreSQL hem de MySQL, Oracle ve SQL Server gibi kurumsal çözümlerle rekabet edebilecek, zaman içinde kendini kanıtlanmış çözümlerdir.

MySQL, kullanım kolaylığı ve hızı ile ünlüyken, PostgreSQL'in birçok daha gelişmiş özelliği vardır; bu nedenle PostgreSQL'in genellikle açık kaynaklı bir sürümü olarak tanımlanması gerekir.
Aşağıdaki tablo PostgreSQL ve MySQL'in özelliklerini karşılaştırmaktadır:
| PostgreSQL | MySQL | |
|---|---|---|
| Bilinirlik | Dünyanın en gelişmiş açık kaynak veritabanı | Dünyanın en popüler açık kaynak veritabanı | 
| Gelişim | PostgreSQL açık kaynaklı bir projedir | MySQL açık kaynaklı bir üründür | 
| Okunuş Şekli | post gre es qu el | may es qu el | 
| Lisanslama | MIT tarzı lisans | GNU Genel Kamu Lisansı | 
| Uygulama programlama dili | C | C / C ++ | 
| GUI aracı | pgAdmin | MySQL Workbench | 
| ACID | Evet | Evet | 
| Depolama motoru | Tek depolama motoru | Çoklu depolama motorları, örneğin InnoDB ve MyISAM | 
| Tam metin araması | Evet | Evet | 
| Geçici Tabloyu Sil | DROP TABLEifadesindeTEMPveyaTEMPORARYanahtar sözcüğü yok | MySQL, yalnızca geçici tabloyu kaldırmanıza izin veren DROP TABLEifadesindeTEMPveyaTEMPORARYanahtar sözcüğünü destekler. | 
| DROP TABLE | Tablonun bağımlı nesnelerini bırakmak için CASCADEseçeneğini destekleyin; örneğin, tablolar, görünümler, vb. | CASCADEseçeneğini desteklemiyor | 
| TRUNCATE TABLE | PostgreSQL TRUNCATE TABLE,CASCADE,RESTART IDENTITY,CONTINUE IDENTITY, işlem güvenliği vb. Gibi daha fazla özelliği destekler. | MySQL TRUNCATE TABLE,CASCADEözelliğini desteklemiyor ve güvenli işlem yapmıyor yani. veri silindikten sonra geri alınamaz. | 
| Otomatik Satır Arttırma | SERIAL | AUTO_INCREMENT | 
| Analitik fonksiyonlar | Evet | Yok hayır | 
| Veri tipleri | array, hstore, ve kullanıcı tanımlı tür gibi birçok gelişmiş türü destekler . | SQL standart türleri | 
| İşağretsiz tamsayı | Yok hayır | Evet | 
| Boolean türü | Evet | TINYINT(1)dahili olarak Boole için kullanın | 
| IP adresi veri türü | Evet | Yok hayır | 
| Bir sütun için varsayılan değer ayarlama | Hem sabit hem de işlev çağrısı desteği | TIMESTAMPveyaDATETIMEsütunları için sabit veyaCURRENT_TIMESTAMPolmalı | 
| CTE | Evet | Evet (MySQL 8.0'dan beri desteklenen CTE ) | 
| EXPLAINçıkışı | Daha detaylı | Daha az detaylı | 
| Materyalleştirilmiş görünümler | Evet | Yok hayır | 
| CHECK kısıtlaması | Evet | Hayır (MySQL CHECK kısıtlamasını yoksayar) | 
| Tablo devralma | Evet | Yok hayır | 
| stored procedures için programlama dilleri | Ruby, Perl, Python, TCL, PL / pgSQL, SQL, JavaScript vb. | SQL: stored procedures için 2003 sözdizimi | 
| FULL OUTER JOIN | Evet | Yok hayır | 
| INTERSECT | Evet | Yok hayır | 
| EXCEPT | Evet | Yok hayır | 
| Kısmi indeksler | Evet | Yok hayır | 
| Bitmap dizinleri | Evet | Yok hayır | 
| İfade dizinleri | Evet | Yok hayır | 
| Kapsayan endeksler (Covering indexes) | Evet (9.2 sürümünden beri) | Evet. MySQL, tablo verilerine dokunmadan yalnızca indeksi tarayarak verilerin alınmasına izin veren endeksleri destekler. Milyonlarca sıra ile büyük tablolar durumunda bu avantajlıdır. | 
| Ortak tablo ifadesi (CTE) | Evet | Evet. (8.0 sürümünden bu yana, MySQL CTE'yi destekledi) | 
| Tetikleyiciler(Triggers) | Rolleri ve tablo alanlarını (örneğin veritabanını küresel olarak etkileyenler hariç) çoğu komut türüne tektiklenebilen destek tetikleyicileri. | Bazı komutlarla sınırlı | 
| Bölümleme | RANGE, LIST | RANGE, LIST, HASH, KEY ve HANG veya KEY alt bölümleri ile RANGE veya LIST kombinasyonunun kullanıldığı bileşik bölümleme | 
| Görev Takvimi | pgAgent | Planlanmış olay | 
| Bağlantı Ölçeklenebilirliği | Her yeni bağlantı bir işletim sistemi işlemidir. (process) | Her yeni bağlantı bir işletim sistemi iş parçacığıdır. (thread) | 
Kaynak
 
             
            