เทคนิคการเพิ่มประสิทธิภาพสำหรับ MySQL: เพิ่มประสิทธิภาพและความเร็ว

ระบุฟิลด์ที่จำเป็นใน SELECT แบบสอบถาม

แทนที่จะเลือกฟิลด์ทั้งหมดใน SELECT แบบสอบถาม ให้เลือกเฉพาะฟิลด์ที่จำเป็นเพื่อลดการโหลดและปรับปรุงความเร็วของแบบสอบถาม

ตัวอย่างเช่น หากคุณสนใจเฉพาะชื่อและที่อยู่ของลูกค้า ให้แทนที่ข้อความค้นหา:

SELECT * FROM customers;

กับ

SELECT name, address FROM customers;

 

สร้างดัชนี

Index ช่วยให้ MySQL ค้นหาและเรียกใช้ข้อมูลได้เร็วขึ้น ระบุฟิลด์ที่ใช้บ่อยใน WHERE, JOIN, หรือ ORDER BY ส่วนคำสั่ง และสร้างดัชนีสำหรับฟิลด์เหล่านั้น

ตัวอย่างเช่น ใน orders ตาราง " " ถ้า customer_id ฟิลด์ " " ถูกใช้บ่อยใน WHERE หรือ JOIN ค้นหา คุณสามารถสร้างดัชนีได้ดังนี้:

CREATE INDEX idx_customer_id ON orders(customer_id);

 

ใช้ดัชนีประเภทที่เหมาะสม

MySQL จัดเตรียมดัชนีประเภท ต่างๆ เช่น B-tree, แฮช และ full-text เลือกประเภทของดัชนีที่เหมาะสมตามข้อกำหนดการสืบค้นของคุณเพื่อให้แน่ใจว่ามีประสิทธิภาพสูงสุด

ตัวอย่างเช่น หากคุณต้องการค้นหาข้อความภายในช่องข้อมูล คุณสามารถสร้าง full-text ดัชนีได้ดังนี้:

CREATE FULLTEXT INDEX idx_description ON products(description);

 

เพิ่มประสิทธิภาพการค้นหา

ใช้ EXPLAIN เพื่อดูแผนดำเนินการคิวรีและวิเคราะห์ประสิทธิภาพ MySQL การทำงาน ซึ่งจะช่วยคุณระบุปัญหาด้านประสิทธิภาพและเพิ่มประสิทธิภาพการสืบค้นข้อมูลโดยใช้ดัชนีหรือการเขียนแบบสอบถามใหม่

ตัวอย่างเช่น หากต้องการดูแผนการสืบค้นของ SELECT แบบสอบถาม ให้รันคำสั่งต่อไปนี้:

EXPLAIN SELECT * FROM orders WHERE customer_id = 123;

 

จำกัดจำนวนผลลัพธ์ที่ส่งคืน

เมื่อแบบสอบถามส่งคืนผลลัพธ์จำนวนมาก ให้จำกัดจำนวนผลลัพธ์ที่ส่งคืนโดยใช้ LIMIT ส่วนคำสั่ง ซึ่งช่วยลดภาระและปรับปรุงความเร็วการค้นหา

ตัวอย่างเช่น หากต้องการแสดงผลลัพธ์เพียง 10 รายการจากตาราง "ผลิตภัณฑ์" คุณสามารถใช้ข้อความค้นหาต่อไปนี้:

SELECT * FROM products LIMIT 10;

 

ใช้ INNER JOIN แทน JOIN

INNER JOIN ทำงานได้ดีกว่า JOIN ปกติ ใช้ INNER JOIN เมื่อคุณสนใจเฉพาะเรกคอร์ดที่ตรงกันในทั้งสองตาราง

ตัวอย่างเช่น หากต้องการรวมตาราง " orders " และ " customers " ตาม customer_id ฟิลด์ " " คุณสามารถใช้ข้อความค้นหาต่อไปนี้:

SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;

 

ใช้ตารางชั่วคราวอย่างระมัดระวัง

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

ตัวอย่างเช่น แทนที่จะใช้ตารางชั่วคราวในแบบสอบถามต่อไปนี้:

CREATE TEMPORARY TABLE temp_table SELECT * FROM products;

คุณสามารถลองเพิ่มประสิทธิภาพการสืบค้นเพื่อสืบค้นข้อมูลจากตารางต้นฉบับโดยตรง

 

ปรับแต่งการกำหนดค่า MySQL อย่างละเอียด

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

 

ลบข้อมูลที่ไม่จำเป็น

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

ตัวอย่างเช่น ถ้าคุณมี logs ตาราง " " ที่จัดเก็บบันทึกเก่า คุณสามารถลบบันทึกที่เก่ากว่าหนึ่งปีได้โดยใช้ข้อความค้นหาต่อไปนี้:

DELETE FROM logs WHERE created_at < '2022-01-01';

 

ใช้หน่วยความจำ cache

กำหนดค่าหน่วยความจำของ MySQL cache เพื่อจัดเก็บข้อความค้นหาที่เรียกใช้งานบ่อยและข้อมูลที่เพิ่งเข้าถึง ซึ่งช่วยลดเวลาในการเข้าถึงดิสก์และปรับปรุงความเร็วในการสืบค้น

ตัวอย่างเช่น หากต้องการกำหนดค่าแคชหน่วยความจำที่มีขนาด 1GB คุณสามารถแก้ไขไฟล์กำหนดค่า "my.cnf" ของ MySQL ได้ดังนี้:

[mysqld]  
...  
query_cache_type = 1  
query_cache_size = 1G  

 

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