บทความนี้จะอธิบายวิธีเร่งการวิเคราะห์ดัชนี MySQL และการเพิ่มประสิทธิภาพเว็บไซต์ไดนามิกเป็นหลัก iSH China Tutorial Online
1. ดัชนีคืออะไร? iSH China Tutorial Online
Index ใช้เพื่อค้นหาบันทึกที่มีค่าเฉพาะอย่างรวดเร็ว ดัชนี MySQL ทั้งหมดจะถูกบันทึกในรูปแบบของ B-tree หากไม่มีดัชนี เมื่อดำเนินการค้นหา MySQL จะต้องสแกนบันทึกทั้งหมดในตารางทั้งหมดโดยเริ่มจากบันทึกแรกจนกว่าจะพบบันทึกที่ตรงตามข้อกำหนด ยิ่งจำนวนเรกคอร์ดในตารางมากขึ้น ต้นทุนของการดำเนินการนี้ก็จะยิ่งสูงขึ้น หากมีการสร้างดัชนีบนคอลัมน์ที่ใช้เป็นเงื่อนไขการค้นหา MySQL จะสามารถรับตำแหน่งของบันทึกเป้าหมายได้อย่างรวดเร็วโดยไม่ต้องสแกนบันทึกใดๆ หากตารางมี 1,000 บันทึก การค้นหาบันทึกผ่านดัชนีจะเร็วกว่าการสแกนบันทึกตามลำดับอย่างน้อย 100 เท่า iSH Chinese Tutorial Online
สมมติว่าเราสร้างตารางชื่อ people: iSH Chinese Tutorial Online
CREATE TABLE people ( peopleid SMALLINT NOT NULL, iSH Chinese Tutorial Online
name CHAR(50) NOT NULL ); iSH Chinese Tutorial Online
จากนั้นเราจะสุ่มแทรก 1000 ค่าชื่อที่แตกต่างกันลงในตารางบุคคล คอลัมน์ชื่อไม่มีลำดับที่ชัดเจนในไฟล์ข้อมูล หากเราสร้างดัชนีบนคอลัมน์ชื่อ MySQL จะเรียงลำดับคอลัมน์ชื่อในดัชนี สำหรับแต่ละรายการในดัชนี MySQL จะบันทึก "ตัวชี้" ภายในไปยังตำแหน่งบันทึกจริงในไฟล์ข้อมูล ดังนั้นหากเราต้องการค้นหารหัสบุคคลของบันทึกที่มีชื่อเท่ากับ "ไมค์" (คำสั่ง SQL คือ "เลือกรหัสประจำตัวจากบุคคลที่ชื่อ = 'ไมค์';") MySQL จะสามารถค้นหาค่า "ไมค์" ในดัชนีชื่อ จากนั้นไปที่แถวที่เกี่ยวข้องในไฟล์ข้อมูลจะส่งคืนรหัสบุคคล (999) ของแถวนั้นโดยตรง ในระหว่างกระบวนการนี้ MySQL จำเป็นต้องประมวลผลเพียงแถวเดียวเพื่อส่งคืนผลลัพธ์ หากไม่มีดัชนีในคอลัมน์ "ชื่อ" MySQL จะสแกนบันทึกทั้งหมดในไฟล์ข้อมูลนั่นคือ 1,000 บันทึก! แน่นอนว่ายิ่งจำนวนระเบียนที่ MySQL จำเป็นต้องประมวลผลน้อยลงเท่าไร ก็สามารถทำงานให้เสร็จเร็วขึ้นเท่านั้น iSH Chinese Tutorial Online
2. ประเภทดัชนี iSH Chinese Tutorial Online
MySQL มีประเภทดัชนีที่หลากหลายให้เลือก: iSH Chinese Tutorial Online
ดัชนีสามัญ: iSH Chinese Tutorial Online
นี่เป็นประเภทดัชนีพื้นฐานที่สุด และไม่มีข้อจำกัด เช่น เอกลักษณ์ . ดัชนีทั่วไปสามารถสร้างได้ด้วยวิธีต่อไปนี้: บทช่วยสอนภาษาจีน iSH ออนไลน์
สร้างดัชนี ตัวอย่างเช่น CREATE INDEX <ชื่อดัชนี> ON ชื่อตาราง (รายการคอลัมน์) บทช่วยสอนภาษาจีน iSH ออนไลน์
แก้ไขตาราง เช่น ALTER TABLE tablename ADD INDEX [ชื่อดัชนี] ] (รายการคอลัมน์) iSH บทช่วยสอนภาษาจีนออนไลน์
ระบุดัชนีเมื่อสร้างตาราง เช่น CREATE TABLE tablename ([...], INDEX [ชื่อดัชนี] (รายการคอลัมน์)); Chinese Tutorial Online
Unique Index: iSH Chinese Tutorial Online
ดัชนีประเภทนี้โดยพื้นฐานแล้วจะเหมือนกับ "ดัชนีทั่วไป" ก่อนหน้า แต่มีความแตกต่างอย่างหนึ่ง: ค่าทั้งหมดในคอลัมน์ดัชนีสามารถปรากฏได้เพียงครั้งเดียวเท่านั้น กล่าวคือ ต้อง มีเอกลักษณ์ ดัชนีที่ไม่ซ้ำสามารถสร้างได้ด้วยวิธีต่อไปนี้: บทช่วยสอนภาษาจีน iSH ออนไลน์
สร้างดัชนี เช่น CREATE UNIQUE INDEX <index name> ON tablename (รายการคอลัมน์) บทช่วยสอนภาษาจีน iSH ออนไลน์
แก้ไขตาราง เช่น ALTER TABLE tablename ADD UNIQUE [index name] (รายการคอลัมน์) iSH Chinese Tutorial Online
ระบุดัชนีเมื่อสร้างตาราง เช่น CREATE TABLE tablename ([...], UNIQUE [ชื่อดัชนี] (รายการคอลัมน์));
คีย์หลัก: การสอนภาษาจีนออนไลน์ของ iSH
คีย์หลักเป็นดัชนีที่ไม่ซ้ำกัน แต่จะต้องระบุเป็น "คีย์หลัก" หากคุณเคยใช้คอลัมน์ประเภท AUTO_INCREMENT คุณอาจคุ้นเคยกับแนวคิดเช่นคีย์หลักอยู่แล้ว โดยทั่วไปคีย์หลักจะถูกระบุเมื่อสร้างตาราง เช่น "สร้างชื่อตารางตาราง ([...], คีย์หลัก (รายการคอลัมน์));" อย่างไรก็ตาม เรายังสามารถเพิ่มคีย์หลักได้โดยการแก้ไขตาราง เช่น "ALTER TABLE tablename ADD PRIMARY KEY (list of columns)" แต่ละตารางสามารถมีคีย์หลักได้เพียงคีย์เดียวเท่านั้น
ดัชนีข้อความแบบเต็ม
ของการสอนภาษาจีน iSH แบบออนไลน์
: การสอนภาษาจีนแบบออนไลน์ของ iSHMySQL รองรับการจัดทำดัชนีข้อความแบบเต็มและการค้นหาข้อความแบบเต็มตั้งแต่เวอร์ชัน 3.23.23 ใน MySQL ประเภทดัชนีของดัชนีข้อความแบบเต็มคือ FULLTEXT สามารถสร้างดัชนีข้อความแบบเต็มได้ในคอลัมน์ประเภท VARCHAR หรือ TEXT สามารถสร้างได้ด้วยคำสั่ง CREATE TABLE หรือโดยคำสั่ง ALTER TABLE หรือ CREATE INDEX สำหรับชุดข้อมูลขนาดใหญ่ การสร้างดัชนีข้อความแบบเต็มผ่านคำสั่ง ALTER TABLE (หรือ CREATE INDEX) จะเร็วกว่าการแทรกบันทึกลงในตารางว่างที่มีดัชนีข้อความแบบเต็ม