Latest web development tutorials

ดัชนี MySQL

MySQL MySQL สร้างดัชนีสำหรับการดำเนินงานที่มีประสิทธิภาพเป็นสิ่งสำคัญมากดัชนีสามารถปรับปรุงความเร็วในการดึงของ MySQL

ตัวอย่างเช่นถ้ามีการออกแบบที่เหมาะสมและใช้ดัชนี MySQL เป็น Lamborghini แล้วไม่มีการออกแบบและการใช้ดัชนี MySQL เป็นรถสามล้อ

ดัชนีชี้ดัชนีแยกต่างหากและดัชนีรวมกัน ดัชนีที่แยกต่างหากที่มีเพียงดัชนีคอลัมน์เดียวตารางสามารถมีดัชนีหลายแยก แต่นี้ไม่ได้เป็นดัชนีคอมโพสิต ดัชนีคอมโพสิตคือสายเคเบิลประกอบด้วยส่วนใหญ่ของคอลัมน์

เมื่อคุณสร้างดัชนีคุณต้องให้แน่ใจว่าดัชนีจะถูกนำมาใช้ในเงื่อนไขแบบสอบถาม SQL (โดยทั่วไปตามเงื่อนไขของคำสั่ง WHERE ก)

ในความเป็นจริงดัชนียังเป็นตารางที่เก็บกุญแจและดัชนีสาขาหลักและจุดที่จะบันทึกตารางนิติบุคคลที่

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

การจัดทำดัชนีใช้พื้นที่ดิสก์ในแฟ้มดัชนี


ดัชนีทั่วไป

สร้างดัชนี

นี่คือดัชนีพื้นฐานมันไม่ได้มีข้อ จำกัด ใด ๆ มันได้สร้างวิธีการต่อไปนี้:

CREATE INDEX indexName ON mytable(username(length)); 

ถ้ามันเป็นถ่านชนิด VARCHAR, ความยาวสามารถจะน้อยกว่าความยาวจริงของสนามถ้าหยดและข้อความประเภทคุณต้องระบุความยาว

การปรับเปลี่ยนโครงสร้างของตาราง

ALTER mytable ADD INDEX [indexName] ON (username(length)) 

เมื่อคุณสร้างตารางโดยตรงระบุ

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

ลบดัชนีไวยากรณ์

DROP INDEX [indexName] ON mytable; 

ดัชนีที่ไม่ซ้ำ

มันคล้ายกับดัชนีทั่วไปก่อนหน้านี้ก็มีความแตกต่าง: ค่าของคอลัมน์ดัชนีต้องไม่ซ้ำกัน แต่อนุญาตให้คุ้มค่าฟรี ถ้ามันคือการรวมกันของดัชนีค่าคอลัมน์ต้องไม่ซ้ำกัน มันได้สร้างวิธีการต่อไปนี้:

สร้างดัชนี

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

การปรับเปลี่ยนโครงสร้างของตาราง

ALTER mytable ADD UNIQUE [indexName] ON (username(length)) 

เมื่อคุณสร้างตารางโดยตรงระบุ

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);  

ใช้คำสั่งแก้ไขการเพิ่มและลบดัชนี

มีสี่วิธีที่จะเพิ่มตารางข้อมูลดัชนี ได้แก่ :

  • เปลี่ยนแปลงตาราง tbl_name เพิ่มคีย์หลัก (column_list ): คำสั่งนี้จะเพิ่มคีย์หลักซึ่งหมายความว่าค่าดัชนีต้องไม่ซ้ำกันและไม่สามารถเป็นโมฆะ

  • เปลี่ยนแปลงตาราง tbl_name ADD index_name ที่ไม่ซ้ำ (column_list ): คำสั่งนี้จะสร้างค่าดัชนีต้องไม่ซ้ำกัน (ยกเว้นโมฆะนอกโมฆะอาจปรากฏหลายครั้ง)
  • เปลี่ยนแปลงตาราง tbl_name ADD INDEX index_name (column_list ): เพิ่มดัชนีปกติค่าดัชนีสามารถเกิดขึ้นได้หลายครั้ง
  • เปลี่ยนแปลงตาราง tbl_name ADD FULLTEXT index_name (column_list ): คำสั่งนี้ระบุดัชนี FULLTEXT สำหรับจัดทำดัชนีข้อความ

ตัวอย่างต่อไปนี้เพิ่มดัชนีในตาราง

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

นอกจากนี้คุณยังสามารถใช้ข้อ DROP เพื่อลบดัชนีในคำสั่งแก้ไข ลองตัวอย่างต่อไปนี้เพื่อลบดัชนี:

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

ใช้คำสั่งแก้ไขการเพิ่มและลบคีย์หลัก

เพียง แต่ทำหน้าที่ในคอลัมน์คีย์หลักเมื่อคุณเพิ่มดัชนีคีย์หลักที่คุณต้องการเพื่อให้แน่ใจว่าคีย์หลักเริ่มต้นคือไม่ว่างเปล่า (ไม่เป็นโมฆะ) ตัวอย่างมีดังนี้

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

นอกจากนี้คุณยังสามารถใช้คำสั่ง ALTER ลบคีย์หลัก:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

เพียงแค่ระบุคีย์หลักลบเวลาที่กำหนด แต่เมื่อคุณลบดัชนีคุณต้องรู้ชื่อของดัชนี


ข้อมูลดัชนีการแสดงผล

คุณสามารถใช้คำสั่ง SHOW ดัชนีรายการข้อมูลดัชนีตาราง โดยการเพิ่ม \ G เพื่อรูปแบบการออก

ลองตัวอย่างต่อไปนี้:

mysql> SHOW INDEX FROM table_name\G
........