การเชื่อมต่อแบบถาวรเป็นความคิดที่ดีเฉพาะเมื่อใช้เวลานานพอสมควรในการเชื่อมต่อกับฐานข้อมูลของคุณ ทุกวันนี้แทบจะไม่เคยเกิดขึ้นเลย ข้อเสียเปรียบที่ใหญ่ที่สุดของการเชื่อมต่อแบบถาวรคือมัน จำกัด จำนวนผู้ใช้ที่คุณสามารถเรียกดูไซต์ของคุณ: ถ้า MySQL ได้รับการกำหนดค่าให้อนุญาตการเชื่อมต่อพร้อมกัน 10 ครั้งในครั้งเดียวแล้วเมื่อบุคคลที่ 11 พยายามเรียกดูไซต์ของคุณ .
PDO ไม่จัดการการติดตา ไดรเวอร์ MySQL ทำ มันนำมาใช้ใหม่การเชื่อมต่อเมื่อ) พวกเขามีอยู่และโฮสต์ / ผู้ใช้ / รหัสผ่าน / ฐานข้อมูลที่ตรงกัน หากมีการเปลี่ยนแปลงใด ๆ มันจะไม่นำการเชื่อมต่อกลับมาใช้ใหม่ ผลกระทบสุทธิกรณีที่ดีที่สุดคือการเชื่อมต่อเหล่านี้คุณจะเริ่มต้นและหยุดบ่อยเพราะคุณมีผู้ใช้ที่แตกต่างกันในเว็บไซต์และทำให้พวกเขาคงไม่ทำดี
สิ่งสำคัญที่ต้องเข้าใจเกี่ยวกับการเชื่อมต่อแบบถาวรคือคุณไม่ควรใช้การเชื่อมต่อเหล่านี้กับเว็บแอปพลิเคชันส่วนใหญ่ พวกมันดูน่าหลงใหล แต่มันอันตรายและไร้ประโยชน์มาก
ฉันแน่ใจว่ามีเธรดอื่น ๆ อยู่ด้วย แต่การเชื่อมต่อแบบถาวรนั้นเป็นอันตรายเพราะมันยังคงอยู่ระหว่างการร้องขอ ตัวอย่างเช่นหากคุณล็อกตารางในระหว่างการร้องขอจากนั้นไม่สามารถปลดล็อกได้ตารางนั้นจะถูกล็อคอย่างไม่มีกำหนด การเชื่อมต่อแบบต่อเนื่องนั้นไร้ประโยชน์มากสำหรับ 99% ของแอพของคุณเพราะคุณไม่รู้ว่าจะใช้การเชื่อมต่อเดียวกันระหว่างคำขอที่แตกต่างกันหรือไม่ แต่ละเธรดเว็บจะมีชุดการเชื่อมต่อถาวรของตัวเองและคุณไม่มีวิธีควบคุมว่าเธรดใดจะจัดการคำขอใด
คลัง mysql ขั้นตอนของ PHP มีคุณสมบัติที่การเรียก mysql_connect ในภายหลังจะกลับลิงค์เดียวกันแทนที่จะเปิดการเชื่อมต่อที่แตกต่างกัน สิ่งนี้ไม่มีส่วนเกี่ยวข้องกับการเชื่อมต่อแบบถาวรและเฉพาะกับไลบรารี mysql PDO ไม่แสดงพฤติกรรมดังกล่าว
ลิงค์ทรัพยากร: ลิงค์
โดยทั่วไปคุณสามารถใช้สิ่งนี้เป็น "ruleset" คร่าวๆ ::
ใช่ใช้การเชื่อมต่อแบบถาวรถ้า:
ไม่ไม่ต้องใช้การเชื่อมต่อแบบถาวรหาก:
การใช้การเชื่อมต่อแบบต่อเนื่องนั้นเร็วกว่ามากโดยเฉพาะหากคุณเข้าถึงฐานข้อมูลผ่านเครือข่าย มันไม่ได้สร้างความแตกต่างอย่างมากถ้าฐานข้อมูลกำลังทำงานบนเครื่องเดียวกัน แต่ก็ยังเร็วกว่าเล็กน้อย อย่างไรก็ตาม - ตามชื่อบอกว่า - การเชื่อมต่อจะคงอยู่นั่นคือมันยังคงเปิดอยู่แม้ว่าจะไม่ได้ใช้ก็ตาม
ปัญหาที่เกิดขึ้นคือใน "การกำหนดค่าเริ่มต้น" นั้น MySQL อนุญาตให้ 1,000 ช่องสัญญาณแบบ "เปิด" เท่านั้น หลังจากนั้นการเชื่อมต่อใหม่จะถูกปฏิเสธ (คุณสามารถปรับแต่งการตั้งค่านี้) ดังนั้นถ้าคุณมี - พูด - 20 Webservers ที่มีลูกค้า 100 คนในนั้นและทุกคนมีเพียงหนึ่งหน้าต่อชั่วโมงคณิตศาสตร์ง่าย ๆ จะแสดงให้คุณเห็นว่าคุณจะต้องเชื่อมต่อกับฐานข้อมูลแบบขนาน 2000 ครั้ง นั่นไม่ได้ผล
Ergo: ใช้สำหรับแอปพลิเคชันที่มีคำขอจำนวนมากเท่านั้น