ดัชนี SQLite
ดัชนี (Index) เป็นตารางการค้นหาพิเศษเครื่องมือค้นหาฐานข้อมูลที่ใช้ในการเพิ่มความเร็วในการดึงข้อมูล ใส่เพียงแค่ดัชนีเป็นตัวชี้ไปยังข้อมูลในตาราง ดัชนีฐานข้อมูลของหนังสือเล่มหนึ่งที่อยู่เบื้องหลังดัชนีจะคล้ายกันมาก
ตัวอย่างเช่นถ้าคุณต้องการที่จะหารือเกี่ยวกับหัวข้อเฉพาะในหนังสือทุกหน้าอ้างอิงแรกคุณจะต้องชี้ไปที่ดัชนีรายชื่อเรียงตามตัวอักษรทุกหัวข้อแล้วชี้ไปที่หมายเลขหน้าหนึ่งหรือเฉพาะเจาะจงมากขึ้น
ดัชนีอนุญาตให้แบบสอบถาม SELECT ที่รวดเร็วและมีคำสั่ง WHERE แต่มันจะช้าลงรายการข้อมูลโดยใช้ปรับปรุงและ INSERT งบเมื่อ ดัชนีสามารถสร้างหรือลบ แต่จะไม่ส่งผลกระทบต่อข้อมูล
สร้างดัชนีโดยใช้คำสั่ง CREATE INDEX ซึ่งจะช่วยให้คุณตั้งชื่อดัชนีระบุตารางที่จะจัดทำดัชนีและหนึ่งหรือมากกว่าหนึ่งคอลัมน์และบ่งชี้ว่าดัชนีจะน้อยไปมากหรือมากไปหาน้อย
ดัชนีอาจจะไม่ซ้ำกันและคล้าย จำกัด ที่ไม่ซ้ำเพื่อป้องกันไม่ให้รายการที่ซ้ำกันในคอลัมน์หรือการรวมกันของคอลัมน์
คำสั่ง CREATE INDEX
สร้างดัชนีไวยากรณ์พื้นฐานจะเป็นดังนี้:
สร้าง index_name ดัชนี table_name;
ดัชนีแยกต่างหาก
ดัชนีจะขึ้นอยู่กับเพียงดัชนีเดียวในรายการที่สร้างขึ้น ไวยากรณ์พื้นฐานจะเป็นดังนี้:
CREATE INDEX index_name ON table_name (คอลัมน์);
ดัชนีที่ไม่ซ้ำ
โดยใช้ดัชนีที่ไม่ซ้ำกันคือไม่เพียง แต่สำหรับผลการดำเนินงาน แต่ยังรวมถึงความสมบูรณ์ของข้อมูล ดัชนีที่ไม่ซ้ำไม่อนุญาตให้มีค่าที่ซ้ำกันใด ๆ ลงในตาราง ไวยากรณ์พื้นฐานจะเป็นดังนี้:
CREATE UNIQUE INDEX index_name on table_name (column_name);
ดัชนีคอมโพสิต
องค์ประกอบดัชนีจะขึ้นอยู่กับสองคนหรือมากกว่าคอลัมน์ของตารางที่สร้าง ไวยากรณ์พื้นฐานจะเป็นดังนี้:
CREATE INDEX index_name ใน table_name (COLUMN1, column2);
คุณต้องการที่จะสร้างดัชนีที่แยกจากกันเป็นดัชนีคอมโพสิตคำนึงถึงบ่อยมากเป็นเงื่อนไขตัวกรองการค้นหาของคุณในคอลัมน์อนุประโยคของตำแหน่ง
ถ้าค่าของการใช้งานของคอลัมน์ที่เลือกที่จะใช้ดัชนีที่แยกต่างหาก หากมีการกรองคำสั่ง WHERE มักจะใช้สองหรือมากกว่าคอลัมน์จากนั้นเลือกที่จะใช้การรวมกันของดัชนี
ดัชนีโดยปริยาย
ดัชนีโดยนัยก็คือเมื่อคุณสร้างวัตถุที่สร้างขึ้นโดยอัตโนมัติเซิร์ฟเวอร์ฐานข้อมูล ดัชนีจะถูกสร้างขึ้นโดยอัตโนมัติเป็นข้อ จำกัด ที่สำคัญหลักและข้อ จำกัด ที่ไม่ซ้ำกัน
ตัวอย่าง
นี่คือตัวอย่างที่เราจะสร้างดัชนีในตารางเงินเดือนคอลัมน์ บริษัท :
SQLite> สร้าง salary_index ดัชนีใน บริษัท (เงินเดือน);
ตอนนี้ขอใช้คำสั่ง.indices รายการดัชนีที่มีอยู่ทั้งหมดบนโต๊ะ บริษัท ฯ ดังนี้
SQLite> .indices บริษัท
นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้ซึ่งsqlite_autoindex_COMPANY_1ดัชนีส่อถูกสร้างขึ้นเมื่อคุณสร้างตาราง
salary_index sqlite_autoindex_COMPANY_1
คุณสามารถแสดงรายการทุกช่วงฐานข้อมูลดัชนีดังต่อไปนี้:
SQLite> * เลือกจาก sqlite_master ที่พิมพ์ = 'ดัชนี';
คำสั่ง DROP INDEX
ดัชนีสามารถใช้คำสั่งDROP SQLite ลบสนใจเป็นพิเศษควรจะเป็นเมื่อลบดัชนีเนื่องจากผลการดำเนินงานอาจลดลงหรือเพิ่มขึ้น
ไวยากรณ์พื้นฐานจะเป็นดังนี้:
DROP INDEX index_name;
คุณสามารถใช้คำสั่งต่อไปนี้เพื่อลบดัชนีที่สร้างขึ้นก่อนหน้านี้:
SQLite> DROP INDEX salary_index;
ภายใต้สถานการณ์ที่จะหลีกเลี่ยงการใช้ดัชนีหรือไม่
แม้ว่าดัชนีคือการปรับปรุงประสิทธิภาพของฐานข้อมูล แต่ที่นี่มีบางกรณีจำเป็นที่จะต้องหลีกเลี่ยงการใช้ของดัชนี เมื่อคุณใช้ดัชนีแนวทางต่อไปนี้ควรได้รับการพิจารณา:
ดัชนีไม่ควรใช้บนโต๊ะขนาดเล็ก
ดัชนีไม่ควรใช้ในปริมาณมากมีการปรับปรุงบ่อยหรือการดำเนินการแทรกตาราง
ดัชนีไม่ควรใช้ในคอลัมน์ที่มีจำนวนมากของค่าเป็นศูนย์
ดัชนีไม่ควรนำมาใช้ในการดำเนินงานบ่อยของคอลัมน์