โพสต์บล็อกนี้แสดงผลลัพธ์ของการเปรียบเทียบประสิทธิภาพของเอนจิ้นการจัดเก็บเซสชันต่างๆกับ Magento และพวกเขาสรุปว่าผู้ใช้งานพร้อมกันประมาณ 75 คนมีประสิทธิภาพที่แตกต่างกันไม่ได้
ฉันคิดว่าในระดับเหล่านี้ (พวกเขามีธุรกรรมประมาณ 5 ครั้งต่อวินาทีซึ่งจะอยู่ที่ 430k ครั้งในช่วง 12 ชั่วโมง) ค่าโสหุ้ยในทุกสิ่งจะมีผลต่อประสิทธิภาพการทำงานที่คุณเห็นตั้งแต่ไฟล์ / DB / Memcache / Redis การจราจรโดยไม่ทำลายเหงื่อถ้าใช้อย่างถูกต้อง
นั่นทำให้ปัจจัยอื่น ๆ เช่นความยืดหยุ่นความน่าเชื่อถือและความปลอดภัย
ก่อนอื่นฉันอยากจะบอกว่าสิ่งใดก็ตามที่ทำให้พื้นที่จัดเก็บไฟล์ของคุณมีแนวโน้มที่จะลดความสำคัญลงไปอีกเพราะผู้โจมตีสามารถเพียงแค่ปรับเปลี่ยนรหัสแอปพลิเคชันของคุณหรืออย่างน้อยที่สุดค้นพบกุญแจ เข้าไป. พื้นที่จัดเก็บไฟล์จะทำงานได้ดีสำหรับไซต์ที่มีปริมาณต่ำติดตั้งง่ายและมีเหตุผลง่าย เท่าที่คุณบอกว่าคุณกดดิสก์การอ่านฐานข้อมูลก็จะกระทบดิสก์และถ้าฐานข้อมูลสามารถแคชระบบปฏิบัติการของคุณก็อาจจะแคชไฟล์เซสชันอยู่ด้วย นอกจากนี้ยังมีการอ่านไฟล์เดียวและระบบไฟล์ของคุณยอดเยี่ยมหากคุณรู้จักชื่อ หากคุณใช้ PHP คุณรู้หรือไม่ว่าระบบมีการอ่านไฟล์จำนวนมากเพียงใดในการให้บริการแอปพลิเคชันของคุณ ข้อเสียคือคุณสามารถ '
Memcache ค่อนข้างเร็วและหากคุณกำลังพิจารณาโซลูชันระดับ Memcache ในวงกว้างมากขึ้น (Redis และอื่น ๆ ) มีบางอย่างที่จะให้คำมั่นว่าจะคงอยู่ในหน่วยความจำเพื่ออ่านความเร็วเพื่อให้คุณได้รับประโยชน์สูงสุดจากทั้งสองโลก มันค่อนข้างง่ายที่จะให้เหตุผลและลักษณะสำคัญของการประชุมคือสิ่งที่สิ่งเหล่านี้ได้รับการออกแบบมาให้ทำ คุณรู้หรือไม่ว่าคุณจะต้องใส่เข้าไปในเซสชั่นเพื่อเติมหนึ่งในสิ่งเหล่านี้? ตัวเลือกทั้งหมดของคุณจะบังคับให้คุณประนีประนอมหากคุณมีความสามารถเพียงพอ ดิสก์เต็มไปด้วยไฟล์ (จำนวนและขนาดแฟคเตอร์ในที่นี้) ที่เก็บแคชเต็มความจุและฐานข้อมูลมีจำนวนแถวที่ จำกัด และจำกัดความจุของดิสก์เท่ากับแนวทางของไฟล์ นอกจากนี้ระบบเหล่านี้จะมีการเผยแพร่ก็ต่อเมื่อคุณเรียกใช้ระบบเหล่านั้นในลักษณะกระจาย ส่วนใหญ่ทำงานได้ดีกับการตั้งค่าเซิร์ฟเวอร์เดียว หากคุณแจกจ่ายให้คุณอาจมีเว็บเซิร์ฟเวอร์ / เซิร์ฟเวอร์ฐานข้อมูลอื่น ๆ อยู่แล้วดังนั้นปัญหาระบบกระจายของคุณจะไม่ปรากฏขึ้นจากตัวเลือกที่เก็บข้อมูลเซสชันของคุณ อย่างไรก็ตามเมื่อคุณต้องการปริมาณการใช้งาน / กำลังการผลิต 10 เท่าการไปถึงที่นั่นจะเป็นเรื่องที่เป็นธรรมชาติมากกว่าการเก็บไฟล์ ที่เก็บคีย์ / ค่าบางแห่งจะช่วยให้คุณสามารถทำการวิเคราะห์ข้อมูลเซสชันได้ง่าย ๆ แต่ส่วนใหญ่จะไม่ให้คุณเข้าใกล้สิ่งที่ SQL สามารถทำได้
ฉันไม่แน่ใจว่าทำไมคุณเสนอว่าฐานข้อมูลอาจเชื่อถือได้มากกว่าตัวเลือกอื่น ๆ แต่ฉันได้รับความสนใจจากฐานข้อมูลเนื่องจากแอปพลิเคชัน PHP ของคุณอาจใช้งานได้แล้ว ซึ่งหมายความว่าคุณไม่ได้เพิ่มการพึ่งพาเซิร์ฟเวอร์อื่นและคุณสามารถใช้การเชื่อมต่อเดียวกันกับที่คุณใช้เพื่อดึงข้อมูลเซสชันเพื่อรับข้อมูลผู้ใช้ดังนั้นคุณไม่จำเป็นต้องสร้างหนึ่งสำหรับข้อมูลหนึ่งสำหรับ Memcache ฯลฯ หากคุณจัดทำดัชนี ตารางดีมันจะทำงานได้อย่างรวดเร็วพอสมควรและให้ความหมายง่ายๆที่คุณคุ้นเคยอยู่แล้วสำหรับการสร้างเซสชันเก่าหรือแม้แต่การวิเคราะห์ข้อมูลเซสชัน (ฉันไม่แน่ใจว่าทำไมคุณถึงต้องการและถ้าคุณไม่ได้เป็นเช่นนี้อาจไม่ได้ ' มีความสำคัญมาก) การขยายไปยังเครื่องชั่งขนาดใหญ่นั้นไม่สำคัญเท่ากับ Redis
ฉันคิดว่าตัวเลือกนี้ไม่สำคัญเท่าไรในตอนแรก แต่ละวิธีมีความท้าทายและข้อดีและสิ่งที่คุณต้องคิด โดยทั่วไปแล้วคุณอาจจะหลีกเลี่ยงเพียงใช้ค่าเริ่มต้นของ PHP / สิ่งใดก็ตามที่คุณใช้หรือแม้แต่สิ่งที่ง่ายที่สุดในการเริ่มต้น หากตัวเลือกกลายเป็นไม่ดีในภายหลังการวิเคราะห์ประสิทธิภาพของคุณจะบอกคุณและคุณจะได้รับข้อมูลที่คุณจำเป็นต้องใช้ในการเลือกที่เหมาะสมตามลักษณะเฉพาะของการรับส่งข้อมูล สิ่งที่คุณสามารถมีได้ก็คือการเก็งกำไรทั่วไป