Database - Veritabanı
Mysql Myısam Vs Innodb Karşılaştırması Ve Performans Hakkında Sorularım
Mysql Myısam Vs Innodb Karşılaştırması Ve Performans Hakkında Sorularım
-
mysql de motoru nasıl seçmeliyim. karşılaştırmalara gözattım ama hep eski bilgiler, yorumlar. güncel tecrübeleriyle beni aydınlatablecek kimse var mı ya da kaynak gösterebilecek?
bir de hızlıca insert ve select kullanabilmek istiyorum. en performanslısına nasıl ulaşabilirim?
kayıt sayısı hangi rakamlara ulaştıktan sonra sorunlarla karşılaşırım. sunucu özellikleri güçlendirmekle bu aşılabilir mi?
insertlerde kayıt kaçırma durumları olabiliyor mu?
mongodb hangi projelerde kullanılıyor. sanırım user, password giremiyormuşuz. bu güvenlik açığı oluşturmaz mı? mysql ile karşılaştırınca daha performanslı diyolar ama şuradaki sonuçlarda çok farklı gözüküyor.
node.js ile php'de yaptığım çoğu şeyi yaabilir miyim? phpye alternatif olarak kullanılabilir mi?
sipariş takibi yapılan bir projem var. onda kullanacağım. kayıt kaçırmaması ve selectlerin çok uzun sürmemesini istiyorum.
teşekkürler.
lepusmorris tarafından 31/Ağu/17 11:34 tarihinde düzenlenmiştir -
INNODb seçmeni öneririm
INNODb'de insertler bir nebze y a v a ş olabilir (index algoritmasından dolayı), ancak s electlerde bariz hız farkı görürsün, dataların daha hızlı geldiğini fark edeceksin (indexine göre)Hocam, disk kapasitesi, ram, işlemci, mysql indexı, attığın queri bunlar önemlidir (rahat olun). INNODB'de "select count(*) from table" querileri çok y a v a ş tır, myisam'da bu hızlıdır. nedeni de; biri table countu aklında tutar digeri tutmaz s a y a r. Siz onun hızlı olmasını isterseniz "select count(*) from table where c = 1" şeklinde indexli bir field uzerinden alabilirsiniz
Olabilir
mongodb noSQL, milyarlarca data tutabilir, user psw olayını duymaıdm, genelde bıg data ıcın kullanılır. Ben neden SQL den kaçıp NoSQL kullanayım? Zaten SQL'in avantajları benim işime y a r a y a n
node.js ile phpde yaptığın her şeyi yaparsın, fazlasını da yaparsın. Ben uzun yıllar asp, php kullanıp, özel sektörde de 4-5 farklı firmada kod yazdıktan sonra, artık birçok php frameworkunu ogrenmeme rağmen node.js ve Javascript bilgim belli bir seviyeye ulaştıktan sonra asp, php, java gibi dilleri tamamen bıraktım, hiç kullanmıyorum. Ne iş olsa node.js ile halletmeye çalışıyorum. En sevdiğim package ise socket.io (tavsiye ederim)
Şunu söylemek istiyorum, bir linux vps kiralayıp $5-10, centos falan kurup uzerine node.js kurarsın, 5 dkda sunucun olur, daha sonra routing, guvenlik vs gibi konuları da javascript y a z a r a k eklersin,
setTimeout, setInterval gibi + fonksiyonların olur. S u n u c u n u n her özelliğini biliyor olursun
EDİT: Ancak Javascript ile s u n u c u geliştirmek, php ile geliştirmekten daha zordur. -
Cevdet bunu yazdı
INNODb seçmeni öneririm
INNODb'de insertler bir nebze y a v a ş olabilir (index algoritmasından dolayı), ancak s electlerde bariz hız farkı görürsün, dataların daha hızlı geldiğini fark edeceksin (indexine göre)Hocam, disk kapasitesi, ram, işlemci, mysql indexı, attığın queri bunlar önemlidir (rahat olun). INNODB'de "select count(1) from table" querileri çok y a v a ş tır, myisam'da bu hızlıdır. nedeni de; biri table countu aklında tutar digeri tutmaz s a y a r. Siz onun hızlı olmasını isterseniz "select count(1) from table where c = 1" şeklinde indexli bir field uzerinden alabilirsiniz
myIsam'da olabilir
mongodb noSQL, milyarlarca data tutabilir, user psw olayını duymaıdm, genelde bıg data ıcın kullanılır. Ben neden SQL den kaçıp NoSQL kullanayım? Zaten SQL'in avantajları benim işime y a r a y a n
node.js ile phpde yaptığın her şeyi yaparsın, fazlasını da yaparsın. Ben uzun yıllar asp, php kullanıp, özel sektörde de 4-5 farklı firmada kod yazdıktan sonra, artık birçok php frameworkunu ogrenmeme rağmen node.js bilgim belli bir seviyeye ulaştıktan sonra asp, php, java gibi dilleri tamamen bıraktım, hiç kullanmıyorum. Ne iş olsa node.js ile halletmeye çalışıyorum. En sevdiğim package ise socket.io (tavsiye ederim)
Şunu söylemek istiyorum, bir linux vps kiralayıp $5-10, centos falan kurup uzerine node.js kurarsın, 5 dkda sunucun olur, daha sonra routing, guvenlik vs gibi konuları da javascript y a z a r a k eklersin,
setTimeout, setInterval gibi + fonksiyonların olur. S u n u c u n u n her özelliğini biliyor olursun
EDİT: Ancak Javascript ile s u n u c u geliştirmek, php ile geliştirmekten daha zordur.ben hep myisam avantajlı sanıyor ve öyle kullanıyordum. valla makalelere gözattıkça kafam çorba oldu hocam. kimisi innodb'ye köpek çekiyor; çok ram yiyor, selectlerde zorlanıyor falan diyor. kimisi de myisam kaldırılacak, pek kullanışlı değil diyor. performans testlerinde myisam hep avantajlı gözüküyor. https://github.com/webcaetano/mongo-mysql
bakıyorum wordpress falan da myisam. iyice karıştı işler.
sipariş takibi yapılan bir projem var. onda kullanacağım. kayıt kaçırmaması ve selectlerin çok uzun sürmemesini istiyorum.
ayrıca zaman ayırdığın için teşekkür ederim.
-
Est hocam rahat olun
Siz şimdi programda bir insert queri si gönderiyorsunuz.
Benim kullandığım bir framework, insert querilerine kaydedilen datanın idsini cevap olarak gonderiyordu:
--------------------
$response = $db->queri("INSERT INTO table (name) VALUES ('lepusmorris')");
if ($response <=0 )
// kayıt kaçtı (kaydedilemedi)
--------------------
Demek istediğim: Bu kaydedilememe p roblemi, myisam innodb den bağımsız olarak her zaman olabilir (pek olmaz)
Önlem alabilirsiniz bu duruma programmatic olarak -
mongodb ile ilgili bir kay sey söyleyeyim. NoSql hizmetleri tamamen farklidir. Bir kac kere yazdim tekrar yazayim. Kafaniza göre nosql tabanli bir DB cözümü secemezsiniz. Yani neden mongoDB yi seciyorsun cassandra yerine.. Bunun arkasinda CAP teorem denilenbir teori var. Iliskisel veritabani sistemleri (RDBMS) ACID teoremine göre calisiyor. Ancak noSql cözümleri CAP teoremine göre calisir ve DB saglayici secilirken de CAP teorem göz önüne alinir. Bu teoreme göre de her bir database saglayici CAP dan en fazla iki özelligi kullanabilir o yüzden veritabanli da CA, CP ve AP tipi olarak ayrilir. MongoDB de bu kategoride CP yani consistency-partition tolerance altinda calisiyor. CAP e göre hangisi isine yariyorsa o DB yi secmen gerek. Mesela hata olsa dahi sana veri göndermesini istiyorsan (her durumda) ya da herkesin ayni datayi görme olayi varsa vs farkli seyler secilmesi gerekiyor. Biraz arastirirsan daha iyi fikir sahibi olursun.
Hiz konusuna gelince, mongoDB'nin daha hizli oldugunu düsünüyorum tabi bu kullanildigi tipe de bagli.. mesela burada bir kac sekilde karsilastirilmis
http://erthalion.info/public/img/insert_configured.png
eger mongodb testlerinde sen loglu kullanirsan tabi ki yavas sonuc verir. Bu testler ihtiyaca göre ayni sartlarda yapilmasi lazim. Projenin ne oldugunu bilmiyorum lakin sadece noSQL kullanacaksin diye bir olay da yok. Büyük firmalar bazi kisimlarinda nosql bazilarinda rdbms kullanir. Mesela atiyorum, tüm mesajlari tutmak icin nosql iyi bir cözüm olabilir. Ama join sorgulari gerektiren tablolar icin nosql kullanilamaz..
Pek zamanim yok ama biraz arastirma yaparsan daha iyi anlarsin.
kolay gelsin
-
Hocam benim bildigim bir fark var ama ne kdr gecerli bilmioyrum.
MyISAM ile transaction kullanamazsin fakat InnoDB ile transactions kullanabilirsin. Oyle biliyorum.
-
Kendi örneklerimizi veriyorsak;
INNODB ile FULL TEXT SEARCH mümkün değil ancak myISAM ile mümkün -
@Cevdet v5.6 itibariyle fulltext geldi diye biliyorum hocam. https://dev.mysql.com/doc/refman/5.6/en/innodb-fulltext-index.html
@unbalanced teşekkürler hocam. makalelere gözatmaya devam ediyorum.
@dhmm transaction, aslında büyük bir avantaj ama hız daha öncelikli geliyor şuan benim için. ufak bir test yapacağım (insert,select,update,delete). sonuçları eklerim buraya da.
-
Hocam hız farkını 2M kayıttan sonra daha açık gorebilirsin
-
Cevdet bunu yazdı
Hocam hız farkını 2M kayıttan sonra daha açık gorebilirsin
ben mi yanlış ölçüyorum bilmiyorum ama myisam select ve insertlerde 2 kat daha hızlı çalışıyor. 2m kayıt ile denedim.
edit: innodb'nin tek avantajı transaction gözüküyor şuan.
lepusmorris tarafından 31/Ağu/17 17:32 tarihinde düzenlenmiştir -
Deney sonuçları "MyISAM daha hızlı" diyorsa kabul ederim ancak test ederken kullandığın queriler, tabloların indexleri ve benzeri dataları bu konuya eklersen bu iddianı kanıtlamış olursun