Latest web development tutorials

ดัชนี 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;

ภายใต้สถานการณ์ที่จะหลีกเลี่ยงการใช้ดัชนีหรือไม่

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

  • ดัชนีไม่ควรใช้บนโต๊ะขนาดเล็ก

  • ดัชนีไม่ควรใช้ในปริมาณมากมีการปรับปรุงบ่อยหรือการดำเนินการแทรกตาราง

  • ดัชนีไม่ควรใช้ในคอลัมน์ที่มีจำนวนมากของค่าเป็นศูนย์

  • ดัชนีไม่ควรนำมาใช้ในการดำเนินงานบ่อยของคอลัมน์