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 TABLE ifadesinde TEMP veya TEMPORARY anahtar sözcüğü yok |
MySQL, yalnızca geçici tabloyu kaldırmanıza izin veren DROP TABLE ifadesinde TEMP veya TEMPORARY anahtar sözcüğünü destekler. |
DROP TABLE |
Tablonun bağımlı nesnelerini bırakmak için CASCADE seçeneğini destekleyin; örneğin, tablolar, görünümler, vb. |
CASCADE seç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 | TIMESTAMP veya DATETIME sütunları için sabit veya CURRENT_TIMESTAMP olmalı |
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
Yorumunuzu Ekleyin