Oracle สร้างดัชนี

Oracle Srang Dachni



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

ตัวอย่างหนึ่งของตำแหน่งที่ดัชนีฐานข้อมูลจะมีประโยชน์คือในระบบการจัดการลูกค้าสัมพันธ์







ในระบบดังกล่าว เราสามารถมีตารางฐานข้อมูลที่เก็บข้อมูลลูกค้า ซึ่งอาจรวมถึงชื่อ ที่อยู่ วิธีการชำระเงิน ข้อมูลติดต่อ ฯลฯ



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



ในการนำทางนี้ เราสามารถใช้ดัชนีฐานข้อมูล





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

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้คำสั่ง CREATE INDEX ในฐานข้อมูล Oracle เพื่อเริ่มต้นดัชนีใหม่



Oracle สร้างคำสั่งดัชนี

ต่อไปนี้แสดงไวยากรณ์ของคำสั่ง CREATE INDEX ในฐานข้อมูล Oracle:

สร้างดัชนี index_name
บน table_name (คอลัมน์ 1, คอลัมน์ 2, ...);

ไวยากรณ์ข้างต้นสร้างดัชนีชื่อ index_name บนตารางโดยใช้ชื่อ table_name โดยใช้คอลัมน์ที่ระบุ (คอลัมน์ 1, คอลัมน์ 2 ฯลฯ) เป็นคีย์สำหรับดัชนี

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

อย่างไรก็ตาม ในบางกรณี คุณอาจต้องสร้างดัชนีใหม่สำหรับตารางเฉพาะด้วยตนเอง

ให้เราดูตัวอย่างของวิธีการทำสิ่งนี้ให้สำเร็จ

Oracle สร้างตัวอย่างดัชนี

สมมติว่าเรามีตารางที่มีข้อมูลพนักงานตามที่แสดงในผลลัพธ์ด้านล่าง:

เลือกชื่อแรก นามสกุล เงินเดือน วันที่จ้างจากพนักงาน

Oracle สร้างดัชนีสำหรับคอลัมน์เดียว

สมมติว่าเราต้องการสร้างดัชนีโดยใช้คอลัมน์ first_name เราสามารถเรียกใช้แบบสอบถามได้ดังนี้

สร้างดัชนี first_name_lookup บนพนักงาน (FIRST_NAME);

คำสั่ง CREATE INDEX นี้สร้างดัชนีชื่อ first_name_lookup บนตาราง EMPLOYEES โดยใช้คอลัมน์ FIRST_NAME เป็นคีย์สำหรับดัชนี ดัชนีนี้สามารถใช้เพื่อปรับปรุงประสิทธิภาพของแบบสอบถามที่ค้นหาพนักงานตามชื่อของพวกเขา

เมื่อเราสร้างดัชนีแล้ว เราก็สามารถใช้ดัชนีนั้นเพื่อค้นหาพนักงานที่ต้องการได้ดังรูป

เลือก first_name, last_name, เงินเดือน, Hire_date
จากพนักงาน
WHERE first_name = 'วิลเลี่ยม';

ผลลัพธ์:

หากไม่มีดัชนี first_name_lookup ระบบฐานข้อมูลจะต้องสแกนตารางพนักงานทั้งหมดเพื่อค้นหาแถวทั้งหมดที่คอลัมน์ FIRST_NAME เท่ากับ 'William' อย่างไรก็ตาม เมื่อใช้ดัชนีแล้ว ระบบฐานข้อมูลจะสามารถค้นหาแถวได้อย่างรวดเร็วใน ดัชนีโดยใช้ค่า 'John' เป็นคีย์ แล้วดึงแถวที่ร้องขอจากตาราง ซึ่งจะเร็วกว่ามาก

คุณสามารถดูขั้นตอนที่ใช้เมื่อสร้างคิวรีโดยใช้คำสั่ง อธิบายแผน ดังที่แสดง:

อธิบายแผนสำหรับ SELECT first_name, last_name, เงินเดือน, Hire_date
จากพนักงาน
WHERE first_name = 'วิลเลี่ยม';

แผนแบบสอบถามที่เป็นผลลัพธ์:

ตัวอย่างที่ 2 – Oracle สร้างดัชนีที่มีหลายคอลัมน์

ในทำนองเดียวกัน เราสามารถสร้างดัชนีที่ประกอบด้วยมากกว่าหนึ่งคอลัมน์ในตารางที่กำหนด ตัวอย่างเช่น สมมติว่าเราต้องการสร้างดัชนีที่ประกอบด้วยคอลัมน์ first_name และ last_name

เราสามารถใช้รหัสที่แสดง:

สร้างดัชนี multi_lookup บนพนักงาน (FIRST_NAME, LAST_NAME);

คำสั่ง CREATE INDEX นี้สร้างดัชนีชื่อ multi_lookup บนตาราง EMPLOYEES โดยใช้คอลัมน์ FIRST_NAME และ LAST_NAME เป็นคีย์สำหรับดัชนี

เมื่อสร้างแล้วเราสามารถใช้ดัชนีนี้ตามที่แสดงในแบบสอบถามตัวอย่างที่แสดง:

เลือก first_name, last_name, เงินเดือน, Hire_date
จากพนักงาน
WHERE first_name = 'วิลเลียม' และ Last_name = 'สมิธ';

ค่าผลลัพธ์:

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

บทสรุป

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