SQL: การค้นหาเร็วขึ้นในการระบุแถวที่แตกต่างหากมีการทดสอบคุณสมบัติเพิ่มเติมหรือไม่


0

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

ตัวอย่างเช่นหากคุณมี 35 คอลัมน์บนโต๊ะและคุณรู้ค่าที่คุณคาดไว้ใน 34 ของคอลัมน์เหล่านั้นและคุณรู้ว่ามี ID ที่ไม่ซ้ำกันที่จะพบในหนึ่งในนั้นพวกเขาจะจ่ายรายการทั้งหมด คุณลักษณะที่รู้จักใน SELECT?

ถ้าเป็นเช่นนั้นฐานข้อมูลจะมีขนาดใหญ่หรือหลากหลายเท่าใดจึงจะต้องใช้เวลาในการค้นหาเพื่อแสดงการลดที่ชัดเจน?

มันจะจ่ายเงินเพื่อใช้แบบสอบถามย่อยเพื่อกำจัดรายการที่ไม่พึงประสงค์ก่อนหรือไม่

แค่สงสัย.


คุณหมายถึงตารางที่ไม่มีคีย์หลักและไม่มีดัชนีหรือไม่?
MonkeyZeus

อย่างมีประสิทธิภาพใช่ อาจมี PK อยู่ แต่จะไม่ถูกใช้สำหรับ SELECT
gladiola

คุณต้องทดสอบอันนี้ ฐานข้อมูลส่วนใหญ่สามารถจัดทำแผนการดำเนินการสำหรับแบบสอบถามของคุณ
Jama Djafarov

ความเร็วของการสืบค้นจะแตกต่างกันไปอย่างมากโดยขึ้นอยู่กับว่าคุณใช้อยู่หรือไม่ =, LIKE, หรือ IN() ส่วนคำสั่งในประโยคที่คุณอยู่ สิ่งนี้จะได้รับผลกระทบจากขนาดเฉลี่ยและประเภทของข้อมูลภายในคอลัมน์เหล่านั้น 35 แห่ง มีโอกาสเป็นศูนย์อย่างแน่นอนสำหรับทุกคนที่ให้ข้อมูลเชิงลึกที่มีประโยชน์เว้นแต่ว่าตารางนี้ได้ถูกสร้างขึ้นแล้วและคุณสามารถให้ข้อมูลเพิ่มเติมได้ โดยทั่วไปหากคุณสามารถใช้ 3 เขตข้อมูลในตำแหน่งที่ข้อเพื่อส่งกลับจำนวนแถวเดียวกันเป็น 34 สาขาแล้ว 3 สาขาที่ส่วนคำสั่งจะทำงานได้ดีขึ้น
MonkeyZeus

ตกลงฉันจะพิจารณาคำถามที่ปิด ขอให้มีความสุขมาก ๆ ในวันนี้นะ
gladiola
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.