Merhaba arkadaşlar analiz üzerine büyük bir projem var projenin başlangıcında yaklaşık 20 milyon satır veri var ve bunlar sürekli artacak. mssql ücretli olduğu için mysql i tercih etmiştimç Mysql de 1,5 milyon satırı yaklaşık 3 gb civarında verileri şuanda insert yapıyorum.
Kafama takılan durum şu
bu kadar büyük datada mysql de performans sorunları yaşarmıyım?
Mysql mi Mongodb mi
4
●3.546
- 25-10-2017, 09:42:07
- 25-10-2017, 09:50:38Benim bitirme projem relational database'leri nosql database'lere çevirme üzerineydi. Bundan dolayı çok araştırma yaptım.
MySql'i mongo'ya çevirme işlemi yapmıştım. Öncelikle gerekli indexleri oluşturduğun sürece mysql için bu veri fazla değil.
Tabloların birbiri ile ilişkisi yoksa yani foreign key kullanmıyorsan ve join yapmayacaksan bu durumda mongodb çok hızlı olacağından mongo kullanmanı öneririm.
Tapatalk Pro kullanarak iPhone aracılığıyla gönderildi - 25-10-2017, 09:59:05MongoDB ve Mysql birbirinden farklı dünyalar, hangisi diye bir soruya net cevap verebilmek için projeyi tam bilmek gerekiyor.
Mysql doğru kullanılırsa performanslı çalışır. Mesela verileri çok sık select edecekseniz yani verileri okuyacaksanız tablo motoru olarak myisam seçmeli, sürekli insert edip fazla okumayacaksanız innodb seçmelisiniz. Bu tür doğru kullanımları takip ederseniz mysql iyi çalışır. Mysql in avantajlarından biri tabloları birbiri ile ilişkilendirmeniz çok kolaydır. Foreign keylerle tabloları kolayca birbirine bağlarsınız. Viewler oluşturursunuz falan.
Ama mongoDB daha farklıdır. Mongo da herşey json olduğu için bir tablo ve kolon yapısı yoktur. Siz iki tabloyu birleştirmek yerine iki tablonun verilerini aynı koleksiyonda tutabilirsiniz. Verilerin birbirine karışması da imkansızdır çünkü ağaç yapısında kullanabilirsiniz koleksiyonu. Zaten mysql de iki tabloyu join edince aslında mantık olarak aynı işlemi yapmış oluyorsunuz. MongoDB okuma ve yazma hızlarında mysql i tabii ki bayağı geçer. Yani biraz projenizle alakalı bir durum.
Onlarca tablo varsa bunlar birbiri ile ilişkili ve bu ilişkiler birbirini tetikliyorsa mysql daha iyi bir seçenektir. Yok benim bir tablom var sürekli oraya yazacağım ve sonra okuyacağım diyorsanız mongodb daha iyi bir seçenek gibi görünüyor.
Tabii mongodb yi php yada asp ile kullanmak çok akıllıca olmaz. Nodejs doğuştan mongodb'lidir. Mongodb kullanacaksanız nodejs ile proje gelişirmeniz projenizi 3 adım öne taşır. Bir çok şey yazılabilir tabii ki ama siz projenizi iyi analiz edin.
İyi çalışmalar. - 25-10-2017, 10:07:06Merhaba,
Yaklaşık 150 milyon veriye sahip bir databaseyi en hızlı sorgulatma projesinde birkaç fikre sahip olmuştuk. Adım adım yazıyorum;
1. Verini belirle girilecek noktaları sapta implode ile virgüllü tümlet vesaire vesaire işlemleri yapıyorsun.
2. Artık veriyi biliyoruz. Bu verinin ilk harfine göre parçalama yapıyoruz yani örnek veriyorum 21 kümeye ayırdık a ile başlayan b ile başlayan diye gidiyor. Küme sql gruplarını artık tanımladın. Baktın daha mı çok fazla. O zaman ilk iki harf kombinasyonuna girmelisin. (aa ab ac ..... ) Bunlara özel sınıflar açıp veriyi oraya göndermen gerekiyor. Olay basit. Mod komutu ile tabloları bile otomatik oluşturuyorlar ve kendi kendine sildiriyor. Explode ile Çoğul tablolama senin işini çok rahat görücektir.
Bu arada "Deneme" kelimesini yazılımda arattığımda 150 milyon verilik içerikten 16.000 tanesini bana 62 saniyede önüme sunmuştu.
Kısacası: Tamamiyle MySQL Fork diyorum gerisi teferruat.