Bir MySQL soketi ne zaman ve bir host: portu ne zaman kullanılır?


19

Birçok uygulama, bir kullanıcı adı, şifre ana bilgisayarı ve bağlantı noktası kullanarak Mysql'e bağlanmamı sağlıyor. Bazıları yerine bir soket yapılandırmama izin veriyor host:port.

Birinin diğerine karşı açık bir yararı var mı? Bir soketin sadece MySQL aynı makinedeyken çalıştığını hayal edebiliyorum. Öyle mi? Ve eğer öyleyse, bağlanmak yerine bu soketi kullanmanın faydaları var localhost:3306mı?

Ağ ve soketlerin giriş ve çıkışlarına çok aşina değilim, bu yüzden belki de bazı önemli bilgileri tamamen kaçırıyorum ve sorum sadece aptalca; öyleyse, neyi kaçırdığımı açıklayabilir misiniz?

Yanıtlar:


19

Basit.

Soket dosya tabanlı bir iletişimdir ve sokete başka bir makineden erişemezsiniz.

Öte yandan, bağlantı noktaları dünyaya açıktır (yapılandırmaya bağlıdır) ve mysql'ye ana bilgisayar + bağlantı noktası birleşimini kullanarak diğer makineden erişebilirsiniz.

Ayrıca, soketleri anladığım kadarıyla, sadece dosya biçiminde ana bilgisayar + bağlantı noktasının birleşimidir. Yani, bunların hiçbirini kullanmanın net bir faydasını görmüyorum (bilgim kadar).

Ben şahsen host + port kullanmayı tercih etmeme rağmen, kodum daha esnek hale geldiğinden, çok fazla değişmeden diğer makineye taşıyabildiğim için.

Eski bir gönderiden yapıştırma işlemini kopyala :

Unix soketleri, tcp ek yüküne sahip olmadığınız için biraz daha hızlıdır. Bu performans kaybının farkına varmanız sunucu yükü sorunudur. Çok yüksek bir sunucu yükünüz yoksa, tanımayacaksınız.

Örneğin MySQL Sunucusunu Web Sunucusu'ndan ayırmak için Jails (FreeBSD) veya başka bir sanallaştırma teknolojisi kullanıyorsanız, genellikle yuva yerine tcp / ip kurulumunu kullanırsınız. Güvenlik duvarı kurallarının erişimi kısıtlaması gerekir.

Bir soketin bir zorunluluk olması için sisteminizin ağır yük altında olup olmadığını öğrenmeniz veya güzel bir sistem tasarımına (hizmetlerin ayrılması) odaklanabilmeniz gerekir, o zaman bir tcp / ip çözümü daha iyi olur.

Kısa bir cevap verin:

Evet, bir performans farkı var, soketler daha hızlı. Yüksek sunucu yükü çekmiyorsanız, sisteminizin tasarımına neyin daha uygun olduğunu seçmeniz yeterlidir.


Ama her ikisine de sahip olduğumda, mysqld istemci ile aynı makinede yaşadığında; birini diğerinde kullanma konusunda farklılıklar var mı? Biri daha hafif, daha performanslı, hataya açık veya diğerinden daha farklı mı?
berkes

Cevabı biraz daha bilgi ile güncelledik.
GeekRide

Ve biraz daha bilgi.
GeekRide
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.