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