Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การเพิ่มประสิทธิภาพการค้นหาคืออะไร


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

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

มีหลักการต่างๆ ของ Query Optimization ดังนี้ -

  • ทำความเข้าใจว่าฐานข้อมูลของคุณดำเนินการค้นหาอย่างไร − ขั้นแรกของการเพิ่มประสิทธิภาพการสืบค้นคือการทำความเข้าใจว่าฐานข้อมูลทำงานอย่างไร ฐานข้อมูลที่แตกต่างกันมีคำสั่งที่แตกต่างกันสำหรับสิ่งนี้ ตัวอย่างเช่น ใน MySQL สามารถใช้คีย์เวิร์ด “EXPLAIN [SQL Query]” เพื่อดูแผนการสืบค้น ใน Oracle คุณสามารถใช้ "อธิบายแผนสำหรับ [SQL Query]" เพื่อดูแผนการสืบค้นได้

  • ดึงข้อมูลให้น้อยที่สุด − ยิ่งกู้คืนข้อมูลจากคิวรีได้มากเท่าไร ก็ยิ่งต้องใช้ทรัพยากรในการขยายฐานข้อมูลมากขึ้นเพื่อประมวลผลและบันทึกเรกคอร์ดเหล่านี้ ตัวอย่างเช่น หากจำเป็นต้องดึงข้อมูลเพียงคอลัมน์เดียวจากตาราง อย่าใช้ 'SELECT *'

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

มีกลยุทธ์การเพิ่มประสิทธิภาพการค้นหาต่างๆ ดังนี้ -

  • ใช้ดัชนี − สามารถใช้ดัชนีเป็นกลยุทธ์แรกที่ควรใช้เพื่อเพิ่มความเร็วในการค้นหา

  • ตารางรวม − สามารถใช้เพื่อเติมตารางล่วงหน้าในระดับที่สูงกว่า ดังนั้นจึงต้องมีการแยกวิเคราะห์ข้อมูลน้อยลง

  • การแบ่งพาร์ติชันในแนวตั้ง - สามารถใช้แบ่งตารางตามคอลัมน์ได้ วิธีนี้จะลดปริมาณข้อมูลที่แบบสอบถาม SQL ที่จำเป็นในการประมวลผล

  • การแบ่งพาร์ติชันในแนวนอน − มันสามารถใช้เพื่อแบ่งตารางตามค่าข้อมูล ส่วนใหญ่มักจะเป็น วิธีนี้จะลดปริมาณข้อมูลที่แบบสอบถาม SQL ที่จำเป็นในการประมวลผล

  • ดีนอร์มัลไลเซชัน − กระบวนการดีนอร์มัลไลเซชันรวมหลายตารางเป็นตารางเดียว การดำเนินการนี้ช่วยให้การสืบค้นเร็วขึ้นเนื่องจากต้องมีการรวมตารางน้อยลง

  • การปรับแต่งเซิร์ฟเวอร์ − แต่ละเซิร์ฟเวอร์มีพารามิเตอร์ของตัวเองและจัดเตรียมพารามิเตอร์ของเซิร์ฟเวอร์ที่ปรับแต่ง เพื่อให้สามารถใช้ประโยชน์จากทรัพยากรฮาร์ดแวร์ได้อย่างเต็มที่ ซึ่งจะช่วยเร่งการใช้งานแบบสอบถามได้รวดเร็วยิ่งขึ้น