คำถามติดแท็ก application-design

4
การสืบค้นแต่ละรายการเร็วกว่าการเข้าร่วมหรือไม่
คำถามแนวคิด: แบบสอบถามแต่ละรายการเร็วกว่าการเข้าร่วมหรือ: ฉันควรพยายามบีบข้อมูลทุกครั้งที่ฉันต้องการในฝั่งไคลเอ็นต์ให้เป็นคำสั่ง SELECT หนึ่งคำหรือใช้ให้มากที่สุดเท่าที่จะสะดวก? TL : DR : หากคิวรีที่เข้าร่วมของฉันใช้เวลานานกว่ารันคิวรีแต่ละรายการนี่เป็นความผิดของฉันหรือเป็นสิ่งที่คาดหวัง ก่อนอื่นฉันไม่ค่อยเข้าใจฐานข้อมูลมากนักดังนั้นอาจเป็นเพียงฉัน แต่ฉันสังเกตว่าเมื่อฉันต้องรับข้อมูลจากหลาย ๆ ตารางมันเร็วกว่าที่จะได้รับข้อมูลนี้จากการสืบค้นหลายรายการในตารางแต่ละรายการ มีการรวม Inner ง่ายๆ) และแก้ไขข้อมูลร่วมกันบนฝั่งไคลเอ็นต์ที่พยายามเขียนแบบสอบถามแบบซับซ้อน (ซับซ้อน) ที่ฉันสามารถรับข้อมูลทั้งหมดในแบบสอบถามเดียว ฉันพยายามใส่ตัวอย่างง่ายๆอย่างหนึ่งไว้ด้วยกัน: ซอ Fiddle การตั้งค่าสคีมา : CREATE TABLE MASTER ( ID INT NOT NULL , NAME VARCHAR2(42 CHAR) NOT NULL , CONSTRAINT PK_MASTER PRIMARY KEY (ID) ); CREATE TABLE DATA ( …

4
มีอะไรดีไปกว่าการเปลี่ยนแปลงตาราง: DELETE และ INSERT ทุกครั้งหรือมีการอัพเดทอยู่
ฉันกำลังทำโปรเจ็กต์ที่ต้องเปลี่ยนระเบียนประมาณ 36K ในหนึ่งตารางทุกวัน ฉันสงสัยว่าอะไรจะทำงานได้ดีกว่า: ลบแถวและแทรกแถวใหม่หรือ อัปเดตแถวที่มีอยู่แล้ว สำหรับฉันมันง่ายกว่าที่จะลบแถวทั้งหมดและแทรกแถวใหม่ แต่ถ้านี่จะแยกส่วนของตารางและดัชนีและผลกระทบต่อประสิทธิภาพการทำงานแล้วฉันอยากจะอัปเดตเมื่อเป็นไปได้และลบ / แทรกเมื่อจำเป็นเท่านั้น นี่จะเป็นการให้บริการทุกคืนและฉันไม่ต้องการปรับปรุงความเร็วของกระบวนการเอง ฉันกังวลมากขึ้นเกี่ยวกับประสิทธิภาพของการสืบค้นเทียบกับตารางนี้โดยทั่วไปซึ่งฉันมี 89 ล้านบันทึกแล้วและกระบวนการคืนนี้จะส่งผลกระทบต่อมันอย่างไร ฉันควรลบ / แทรกบันทึกหรือฉันควรปรับปรุงรายการที่มีอยู่ (หากเป็นไปได้) สำหรับกระบวนการทุกคืน?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.