2011-12-30 29 views
5

Tek bir proje için tüm veritabanı işlerini ele almak için mysql saklı yordamlarını kullanmayı düşünüyoruz. Aynı veritabanı kullanılarak çeşitli uygulamalar (farklı diller) vardır ve bu uygulamalar arasında tekrarlanan çok sayıda SQL kodu olduğundan emin değilim. mysq hakkında bir şeyler okurkenmysql saklı yordamları nasıl derler?

Sonra temelde yeni db bağlantısı yapıldığında saklı prosedürler her zaman derlenmektedir söylüyor
http://www.joinfu.com/2010/05/mysql-stored-procedures-aint-all-that/
Madde tökezledi.
Veritabanında mysql ALL (en az 3 haneli sayı) saklı yordamını derler mi?

+1

Bağladığınız makalenin, sorunuzu yanıtladığını söyleyebilirim. – hakre

+1

Evet, ben de öyle diyorum. Sadece "Oh, bu 5.5 ve daha sonra mysql için doğru değil" gibi bir şey umudum vardı. – grizwako

+0

Bağlantılı makalenizin yorumlarında bir tartışma özüyle evrilir, bu durum açıkça 5.5'te gelişmiştir, bu nedenle de –

cevap

5

sayılı Sorgulama ve saklanan prosedürleri talep üzerine derlenmiş ve daha sonra bir süre önbellekte tutulur. art arda belirli bir saklı yordamı kullanırsanız önbellekte derlenmiş versiyonu kullanılacaktır, ancak önbellekte artık eğer ilk Diğer sorgularda gibi bir veritabanına göndermek derlenmiş olması gerekir. durumda korktuk neydi -

Ne MySQL kesinlikle yapmayacağım bir kerede tüm x-yüz saklı yordamlar derlemek olduğunu.

Ama bütün bu saklı prosedürlerin avantajı, aynı veritabanı kullanarak birden fazla uygulama aynı şekilde kullanmak emin olmasıdır biraz alakasız. Performansınız, derleme önbelleğine hız için bakmaya başladığınızda, yanlış yere bakıyorsunuz. Hız optimizasyonu, sorgu veya veritabanı yeniden tasarımıyla daha iyi yapılır.

+0

Veritabanlarının göz kamaştırıcı bir şekilde hızlı olması gerekir. Sorgularınızı ve veritabanı tasarımlarınızı ve dizinlerinizi optimize ettikten sonra, ** hızınızı nasıl optimize edebileceğinize dair başka bir şey olabilir mi? – Pacerier

+0

Daha hızlı donanım, daha büyük bellek önbellekleri, daha hızlı sabit sürücüler, diğer depolama motorları. Tabii ki bu, sorguları hızlandırmak için indeksler ekledikten sonradır ... Ayrıca kilitlerin farkında olun: bir tablonun içeriği her değiştiğinde her değişiklik için kilitlendiğinde, böylece sorguları tutar. Bunun arkasında tam bir bilim var ve ben olsaydım, bu soruya çok cevap verdiğinden, bunu yeni bir soru haline getirip 4 yıllık bir cevaba yorum eklemezdim. – Matijs

3

MySQL kerede tüm saklı yordamlar derlemek olmaz. İhtiyaca göre ve talep ettiğinizde sorgu gibi talep üzerine çalıştırılacaktır. Bir saklı yordam ile

Ancak, veritabanı kez sorgu planını derler ve derlenmiş sürecini yeniden kullanır. Bu ön derleme, önemli bir performans avantajı sağlayabilir.

İlgili konular