Score:-1

เกี่ยวกับวิธีที่บริษัทขนาดใหญ่ตั้งค่าฐานข้อมูลของตน

ธง in

ฉันกำลังพยายามทำความเข้าใจว่าบริษัทที่จัดการคำขอฐานข้อมูลขนาดใหญ่ตั้งค่าโครงสร้างพื้นฐานได้อย่างไร เมื่อเร็ว ๆ นี้ฉันได้สร้างแอปพลิเคชันหลามสองสามตัวซึ่งเก็บข้อมูลใน PostGres และการร้องขอเพื่ออ่าน/เขียนต้องใช้เวลา เนื่องจากไม่ได้จัดเก็บไว้ใน RAM และเป็นคอขวดขนาดใหญ่ในการเร่งความเร็ว ซึ่งจะยังคงใช้งานได้หากจำนวนผู้ใช้น้อยกว่า 10 และแม้จะมี 100 ที่มีการเข้าคิวก็สามารถทำงานได้ แต่ด้วยคำขอนับพัน ข้อมูลจะถูกจัดเก็บอย่างไร เนื่องจากมันจะช้าลงในระหว่างการอ่านและเขียน

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

นี่เป็นแนวทางของบริษัทขนาดใหญ่หรือไม่? พวกเขาอ่านฐานข้อมูลทั้งหมดไปยัง RAM ที่ไหน ถ้าทำไม่ได้ โปรดแนะนำวิธีที่เป็นไปได้ที่ฉันสามารถจัดการกับข้อมูลขนาดใหญ่ เช่น เว็บไซต์บล็อก ซึ่งสามารถลดเวลาในการอ่าน/เขียนได้

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

us flag
Rob
*"ฉันมีความคิดที่จะอ่านฐานข้อมูลทั้งหมด"* - นั่นมีประสิทธิภาพพอๆ กับการสั่งซื้อหนังสือทั้งหมดจาก Amazon รอให้พวกเขามาส่ง จากนั้น หลังจากที่กองหนังสือของคุณได้รับการจัดลำดับตามสีของหน้าปกแล้ว ก็ทิ้งไป หนังสือทุกเล่มที่ไม่เกี่ยวกับการออกแบบฐานข้อมูลสำหรับหุ่นจำลองและการออกแบบแอปพลิเคชันที่ต้องใช้ข้อมูลมาก - การออกแบบสคีมาฐานข้อมูลและคิวรีมีความสำคัญมากกว่าสำหรับประสิทธิภาพการทำงานด้วยชุดข้อมูลขนาดใหญ่ แม้ว่าฮาร์ดแวร์ที่มีขนาดใหญ่พอและการปรับแต่งฝั่งเซิร์ฟเวอร์มักจะชดเชยได้ค่อนข้างดีสำหรับการเขียนโปรแกรมที่ไม่ดีและปานกลาง
us flag
Rob
มีสถาปัตยกรรมในชีวิตจริงค่อนข้างน้อยที่กล่าวถึงที่ http://highscalability.com/start-here/ - ไม่ใช่ทั้งหมดที่จะใช้ได้กับคุณ และคุณจะไม่พบโค้ดที่นั่น แต่แนวคิด โซลูชัน และการออกแบบมักจะค่อนข้าง เกี่ยวกับการศึกษา.
us flag
ผู้ใช้ 100 คนแทบจะไม่มีอะไรเลย เราจัดการธุรกรรมประมาณ 200 ล้านรายการ (ค่อนข้างซับซ้อน) ต่อวันสำหรับผู้ใช้สองสามล้านคน แต่ทุกแบบสอบถามได้รับการปรับให้เหมาะสมสำหรับประสิทธิภาพ
br flag
"นี่คือแนวทางของบริษัทขนาดใหญ่หรือไม่ พวกเขาอ่านฐานข้อมูลทั้งหมดไปที่ RAM ที่ไหน" - ใช่ โดยทั่วไปแล้ว หากชุดข้อมูลจำเป็นต้องอยู่ในหน่วยความจำทั้งหมด คุณอาจต้องปรับโครงสร้างฐานข้อมูลใหม่เพื่อให้ทำงานบนระบบ NoSQL
Score:3
ธง al
fvu

แม้แต่เซิร์ฟเวอร์ที่ค่อนข้างเล็กก็สามารถดำเนินการค้นหาได้หลายร้อยรายการต่อวินาที

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

จากนั้นดูคำถามของคุณ คุณมีดัชนีที่ครอบคลุมข้อความค้นหาส่วนใหญ่หรือไม่? เรียกใช้แบบสอบถามของคุณด้วย อธิบาย (เช่นใน pgAdmin) และดูว่ามีประสิทธิภาพเพียงใด

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

คุณเห็นมี มาก คุณสามารถทำได้ก่อนที่จะหันไปใช้เทคนิคที่แปลกใหม่ซับซ้อนและเปราะบางมากขึ้น

เกี่ยวกับความคิดเห็นของคุณ: เฉพาะสำหรับ postgres the วิกิ มีข้อมูลที่น่าสนใจ อย่างไรก็ตาม การอ่านคู่มืออย่างละเอียดเป็นสิ่งสำคัญเช่นกัน เอ็นจิ้นฐานข้อมูลเป็นวิศวกรรมชั้นดี และคุณควรเข้าใจสิ่งที่เกิดขึ้นภายใต้ประทุนเพื่อจัดการพวกมันให้ดี และมีข่าวร้ายเช่นกัน: การปรับแต่งฐานข้อมูลของคุณนั้นขึ้นอยู่กับขนาดของฐานข้อมูล วิธีการเข้าถึงและมีประสิทธิภาพเพียงใด ในสถานการณ์จริงคุณจะต้องคอยติดตามประสิทธิภาพของฐานข้อมูลและการดำเนินการใดที่สามารถปรับปรุงสถานการณ์ได้ . เราใช้ pgBadger สำหรับงานวิเคราะห์จำนวนมาก

Slartibartfast avatar
in flag
คุณช่วยแนะนำแหล่งข้อมูลออนไลน์ที่ฉันสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการปรับฐานข้อมูลให้เหมาะสมได้ไหม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา