HASHBYTES
ฟังก์ชั่นใช้เวลาเพียงไม่ถึง 8000 ไบต์เป็น input เนื่องจากอินพุตของคุณอาจมีขนาดใหญ่กว่านั้นการทำซ้ำในช่วงของฟิลด์ที่ถูกแฮชจะทำให้เกิดการชนโดยไม่คำนึงถึงอัลกอริทึมที่เลือก พิจารณาช่วงของข้อมูลที่คุณวางแผนที่จะใช้อย่างระมัดระวัง - การใช้อักขระ 4000 ตัวแรกเป็นตัวเลือกที่ชัดเจนแต่อาจไม่ใช่ตัวเลือกที่ดีที่สุดสำหรับข้อมูลของคุณ
ในกรณีใด ๆ เพราะฟังก์ชั่นแฮชคืออะไรถึงแม้ว่าอินพุตเป็น 8000 ไบต์หรือน้อยกว่าวิธีเดียวที่จะรับรองความถูกต้องได้ 100% ในผลลัพธ์คือการเปรียบเทียบค่าฐานในบางจุด (อ่าน: ไม่จำเป็นต้องมาก่อน ) ระยะเวลา
ธุรกิจจะกำหนดว่าต้องการความแม่นยำ 100% หรือไม่ สิ่งนี้จะบอกคุณว่า (a) การเปรียบเทียบค่าฐานนั้นจำเป็นต้องใช้หรือ (b) คุณควรพิจารณาที่ จะไม่เปรียบเทียบค่าฐาน - ความแม่นยำเท่าไหร่ที่ควรแลกกับประสิทธิภาพ
แม้ว่าการชนกันของแฮชอาจเกิดขึ้นได้ในชุดอินพุตที่ไม่ซ้ำกัน แต่มีน้อยมากโดยไม่คำนึงถึงอัลกอริธึมที่เลือก แนวคิดทั้งหมดของการใช้ค่าแฮชในสถานการณ์นี้คือการ จำกัด ผลลัพธ์การเข้าร่วมให้แคบลงได้อย่างมีประสิทธิภาพมากขึ้นโดยไม่จำเป็นต้องมาถึงผลลัพธ์ชุดสุดท้ายทันที อีกครั้งเพื่อความแม่นยำ 100% นี่ไม่ใช่ขั้นตอนสุดท้ายในกระบวนการ สถานการณ์นี้ไม่ได้ใช้การแปลงแป้นพิมพ์เพื่อวัตถุประสงค์ในการเข้ารหัสดังนั้นอัลกอริทึมเช่น MD5 จะทำงานได้ดี
มันเป็นเรื่องยากมากสำหรับฉันที่จะแสดงให้เห็นถึงการย้ายอัลกอริทึม SHA-x เพื่อวัตถุประสงค์ "ความถูกต้อง" เพราะถ้าธุรกิจกำลังจะออกนอกลู่นอกทางเกี่ยวกับความเป็นไปได้ของการชนกันของ MD5 โอกาสพวกเขาก็จะประหลาดใจด้วยเช่นกัน อัลกอริทึม SHA-x ไม่สมบูรณ์แบบเช่นกัน พวกเขาจะต้องทำใจด้วยความไม่ถูกต้องเล็กน้อยหรือคำสั่งว่าแบบสอบถามนั้นถูกต้อง 100% และอยู่กับผลกระทบทางเทคนิคที่เกี่ยวข้อง ฉันคิดว่าถ้า CEO นอนหลับได้ดีขึ้นในเวลากลางคืนโดยรู้ว่าคุณใช้ SHA-x แทนที่จะเป็น MD5 ก็ดี มันยังไม่ได้มีความหมายอะไรมากนักจากมุมมองทางเทคนิคในกรณีนี้
การพูดของประสิทธิภาพหากตารางเป็นแบบอ่านส่วนใหญ่และผลการเข้าร่วมเป็นสิ่งจำเป็นบ่อยครั้งให้ลองใช้มุมมองที่จัดทำดัชนีเพื่อลดความจำเป็นในการคำนวณการเข้าร่วมทั้งหมดทุกครั้งที่มีการร้องขอ แน่นอนว่าคุณต้องแลกกับพื้นที่เก็บข้อมูล แต่อาจจะคุ้มค่าสำหรับการปรับปรุงประสิทธิภาพโดยเฉพาะอย่างยิ่งหากจำเป็นต้องมีความแม่นยำ 100%
สำหรับการอ่านเพิ่มเติมเกี่ยวกับการสร้างดัชนีค่าสตริงแบบยาวฉันเผยแพร่บทความที่อธิบายถึงตัวอย่างของวิธีการทำสิ่งนี้สำหรับตารางเดียวและนำเสนอสิ่งที่ต้องพิจารณาเมื่อพยายามสถานการณ์สมมติแบบเต็มในคำถามนี้