Bu sayfanın seçili sürümü ile mevcut sürümü arasındaki farkları gösterir.
İki taraf da önceki sürüm Önceki sürüm Sonraki sürüm | Önceki sürüm | ||
altyapi-arastirmasi [2016/04/22 12:59] metin [2. MySQL] |
— (mevcut) | ||
---|---|---|---|
Satır 1: | Satır 1: | ||
- | ====== Altyapı Araştırması ====== | ||
- | |||
- | ===== Veritabanı ===== | ||
- | |||
- | ==== 1. PostgreSQL ==== | ||
- | |||
- | Açık kaynak kodlu (BSD lisansıyla tam özgür), geniş özelliklere sahip ilişkisel veritabanıdır. | ||
- | |||
- | Artıları: | ||
- | - Güvenilir, ihtiyaç olan özelliklere sahip ve eklentilerle genişletibilir. | ||
- | - Açık kaynak olması sebebiyle güncel tututabilir. | ||
- | - Büyük veritabanları için uygun olup, ölçeklenebilir. | ||
- | - Full Text arama motoru içermektedir. | ||
- | |||
- | Eksileri: | ||
- | - Realtime ve socketio programlama yapmak için uygun değil. Changefeed özelliği orjinal olarak yok | ||
- | - Nosql'e özgü şemasız yapı nedeniyle tip kontrolünün sonradan eklenmesi gerekiyor. | ||
- | |||
- | |||
- | |||
- | ==== 2. MySQL ==== | ||
- | |||
- | Açık kaynak kodlu (GPL) ilişkisel veritabanı. | ||
- | |||
- | Artıları: | ||
- | - Geniş özelliklere sahip, productionda en çok denenmiş veritabanlarından, | ||
- | - Full Text arama motoru içermektedir. | ||
- | - Kolay ölçeklenme ve hız | ||
- | - Popüler | ||
- | |||
- | Eksileri: | ||
- | - Çok kullanıcının aynı tabloya erişimi gibi bazı senaryolarda, güvenilirlik sorunu var | ||
- | - Bazı lisans limitleri bulunuyor. Enterprise olarak satılan versiyonu var | ||
- | - Sql dili sebebiyle ileride oracle a geçilmek istendiğinde geçiş zor | ||
- | ==== 3. RethinkDB ==== | ||
- | |||
- | Açık kaynak kodlu (Apache Lisansı), döküman tabanlı nosql, kullanımı kolay bir veriatabanıdır. | ||
- | |||
- | Artıları: | ||
- | - Kullanımı ve öğrenmesi kolay. Özellikle cluster yönetiminin kolaylığı ve vertanının sağlığını izleyebildiğimiz dasboard'u büyük avantaj | ||
- | - Realtime özellikleri birinci planda ve oldukça gelişmiş. | ||
- | - Nosql'a ait **Map Reduce** fonksiyonları, şemasız yapı ve ölçeklenebilirlik | ||
- | - Diğer nosql'lerde pek bulunmayan sql tarzı joinler | ||
- | |||
- | Eksileri: | ||
- | - Tek tablo üzerindeki işlemlerde ACID özelliğini sağlasada, tablolar arası atomic transaction yapamıyor. Bu tür sorgular [[https://docs.mongodb.org/master/tutorial/perform-two-phase-commits/ | farklı yöntemlerle]] yapılıyor. | ||
- | - Tablolardaki dökümanlar atomik olarak güncelleniyor. Bu döküman büyük bir ağaç yapısı ve ya array içeriyorsa performans sorunları yaratır. | ||
- | - Full text search arama motoru yok. Yanında elastic search gibi bir ürün kullanmak gerekir. | ||
- | |||
- | ==== 4. MongoDB ==== | ||
- | |||
- | Açık kaynaklı (APGL), güvenilir geniş özellikli veritabanıdır. | ||
- | |||
- | Artıları: | ||
- | - Production da bir çok kurum ve şirket tarafından kullanılıp denenmiştir. | ||
- | - Hızlı ve ölçeklenebilir. | ||
- | - Full text arama motoru | ||
- | - Nosql'a ait **Map Reduce** fonksiyonları, şemasız yapı ve ölçeklenebilirlik | ||
- | |||
- | Eksileri: | ||
- | - Tek tablo üzerindeki işlemlerde ACID özelliğini sağlasada, tablolar arası atomic transaction yapamıyor. Bu tür sorgular [[https://docs.mongodb.org/master/tutorial/perform-two-phase-commits/ | farklı yöntemlerle]] yapılıyor. | ||
- | - Join işlemi yoktur. Mongonun yapısının farklı olmasından join işlemine gerek olmaması gerektiği mongo tarafından söylenmektedir. | ||
- | - Shell den yönetimi biraz zor, öğrenme süreci biraz rethinkdb ye göre daha uzun. | ||
- | - Bazı özellik ve araçlar enterprise edition olarak dağıtılıyor. | ||
- | |||
- | |||
- | ==== 5. CouchDB ==== | ||
- | |||
- | Açık kaynaklı (Apache licence), döküman tabanlı direk içerdiği http api ile yönetilen bir nosql veritabanıdır. | ||
- | |||
- | Artıları: | ||
- | - Kendi içerdiği HTTP Api sayesinde bir ara programala diline ihtiyaç duymadan frontendle iletişim kurabilir. | ||
- | - CouchDB PouchDB ikilisi ile verileri uyumlu bir şekilde ekstra bir şey yapmadan replike edilebiliyor.Böylece realtime veri akışı sağlanıyor. | ||
- | - Attachment desteği ile pdf, zip gibi her türlü dosya yüklenebiliyor. | ||
- | - Nosql'a ait **Map Reduce** fonksiyonları, şemasız yapı ve ölçeklenebilirlik | ||
- | - Database başına bir kullanıcı tanımlanıp frontendte kullanılması sağlanabiliyor. | ||
- | |||
- | Eksileri: | ||
- | - Kullanıcı yönetimi yeterli olmayabilir. | ||
- | - Dış serverlarla haberleşen veya özel algoritmalar kullanan servisleri ayrıca yazmak gerekir. | ||
- | - Tek tablo üzerindeki işlemlerde ACID özelliğini sağlasada, tablolar arası atomic transaction yapamıyor. Bu tür sorgular [[https://docs.mongodb.org/master/tutorial/perform-two-phase-commits/ | farklı yöntemlerle]] yapılıyor. | ||
- | |||
- | ==== 6. Redis ==== | ||
- | |||
- | Açık kaynaklı (BSD), ram üzerinde çalışan(in memory) bir datastore'dur. | ||
- | |||
- | Artıları: | ||
- | - Ram üzerinde çalıştığından oldukça hızlı. Veriler diskte saklanır. Büyük verilerde verinin hangi kısmının rame alınacağını ve diğer cache işlemlerini kendi üstlenir. | ||
- | - strings, hashes, lists başta olmak üzere değişik veri tipleri ve tabloları destekler. Bu veri setleri içinde hızlı ve sürekli queryler yapılabilir. | ||
- | - Ölçeklenebilir | ||
- | |||
- | Eksileri | ||
- | - Konfigürasyonları çok, iyi ayarlamak gerekir. | ||
- | - Tek başına bir veritabanı çözümü olayabilir. Özellikle ilişkisel veriler varsa | ||