เมื่อใดที่จะใช้ซ็อกเก็ต MySQL และเมื่อใดจะใช้โฮสต์: พอร์ต?


19

แอพพลิเคชั่นหลายตัวอนุญาตให้ฉันเชื่อมต่อกับ Mysql โดยใช้ชื่อผู้ใช้โฮสต์รหัสผ่านและพอร์ต host:portบางคนให้ฉันไปกำหนดค่าซ็อกเก็ตแทน

มีประโยชน์อย่างใดอย่างหนึ่งที่ชัดเจนกว่าหนึ่งอื่น ๆ ? ฉันสามารถจินตนาการได้ว่าซ็อกเก็ตใช้งานได้ก็ต่อเมื่อ MySQL อยู่ในเครื่องเดียวกัน เป็นอย่างนั้นเหรอ? และถ้าเป็นเช่นนั้นจะมีประโยชน์มากกว่าการใช้ซ็อกเก็ตที่แทนที่จะเชื่อมต่อกับlocalhost:3306?

ฉันไม่คุ้นเคยกับเครือข่ายและซ็อกเก็ตมากเกินไปดังนั้นบางทีฉันอาจพลาดข้อมูลสำคัญบางอย่างไปและคำถามของฉันก็แค่งี่เง่าเท่านั้น ถ้าเป็นเช่นนั้นคุณช่วยอธิบายสิ่งที่ฉันหายไปได้ไหม

คำตอบ:


19

มันง่ายมาก

Socket เป็นการสื่อสารแบบใช้ไฟล์และคุณไม่สามารถเข้าถึงซ็อกเก็ตจากเครื่องอื่นได้

ในทางกลับกันพอร์ตต่างๆจะเปิดให้ใช้กับโลก (ขึ้นอยู่กับการกำหนดค่า) และคุณสามารถเข้าถึง mysql จากเครื่องอื่น ๆ โดยใช้การรวมกันของโฮสต์ + พอร์ต

นอกจากนี้เท่าที่ฉันเข้าใจซ็อกเก็ตพวกเขาเป็นเพียงการรวมกันของโฮสต์ + พอร์ตเพียงในรูปแบบไฟล์ ดังนั้นฉันไม่เห็นประโยชน์ใด ๆ ที่ชัดเจนในการใช้สิ่งเหล่านี้ (เท่าที่ความรู้ของฉันไป)

แม้ว่าโดยส่วนตัวแล้วฉันชอบใช้โฮสต์ + พอร์ตมากขึ้นเนื่องจากรหัสของฉันมีความยืดหยุ่นมากขึ้นเนื่องจากฉันสามารถย้ายไปยังเครื่องอื่นได้โดยไม่ต้องเปลี่ยนอะไรมากมาย

คัดลอกการวางจากโพสต์เก่า :

ซ็อกเก็ตยูนิกซ์เร็วขึ้นเล็กน้อยเนื่องจากคุณไม่มี tcp-overhead หากคุณตระหนักถึงการสูญเสียประสิทธิภาพนี้เป็นคำถามของการโหลดเซิร์ฟเวอร์ หากคุณไม่มีโหลดเซิร์ฟเวอร์ที่สูงมากคุณจะจำไม่ได้

หากคุณใช้ Jails (FreeBSD) หรือเทคโนโลยีเวอร์ชวลไลเซชันอื่น ๆ เพื่อแยก MySQL-Server ออกจากเว็บเซิร์ฟเวอร์คุณมักจะใช้การตั้งค่า tcp / ip แทนซ็อกเก็ต กฎไฟร์วอลล์จำเป็นต้อง จำกัด การเข้าถึง

คุณจำเป็นต้องตรวจสอบว่าระบบของคุณมีภาระงานหนักหรือไม่เพื่อให้ซ็อกเก็ตเป็นสิ่งที่จำเป็นหรือคุณสามารถมุ่งเน้นไปที่การออกแบบระบบที่ดี (แยกบริการ) จากนั้นโซลูชัน tcp / ip จะดีกว่า

ดังนั้นให้ตอบสั้น ๆ สั้น ๆ :

ใช่มีประสิทธิภาพที่แตกต่างซ็อกเก็ตเร็วขึ้น หากคุณไม่ประสบปัญหาโหลดเซิร์ฟเวอร์สูงเพียงเลือกสิ่งที่เหมาะกับการออกแบบระบบของคุณมากขึ้น


แต่เมื่อฉันมีทั้งคู่เมื่อ mysqld อาศัยอยู่ในเครื่องเดียวกับลูกค้า มีความแตกต่างในการใช้หนึ่งมากกว่าอีก? มีคนหนึ่งที่เบากว่ามีประสิทธิภาพมากกว่ามีข้อผิดพลาดหรือมากกว่าคนอื่น ๆ หรือไม่?
berkes

เพิ่งปรับปรุงคำตอบด้วยข้อมูลเพิ่มเติม
GeekRide

และข้อมูลเพิ่มเติม
GeekRide
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.