MariaDB และ MySQL เป็นตัวเลือกที่ดีที่สุดเมื่อพูดถึงระบบการจัดการฐานข้อมูลที่ใช้ SQL (Structured Query Language) SQL ถูกใช้ในฐานข้อมูลเชิงสัมพันธ์เพื่อจัดเก็บจัดการและดึงข้อมูล.


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

บทความนี้มุ่งเน้นไปที่มาตรการที่คุณสามารถทำได้เพื่อเพิ่มความเร็วของการสืบค้น SQL ที่ทำงานบน MySQL / MariaDB.

หมายเหตุพิเศษ: หากคุณต้องการปรับปรุงประสิทธิภาพของเซิร์ฟเวอร์ SQL คุณอาจลองเปลี่ยนมาใช้เว็บโฮสต์ที่ดีกว่า ไปที่หน้าโฮสติ้ง MySQL ที่ดีที่สุดของ HostAdvice เพื่อค้นหาโฮสต์บนเว็บชั้นนำในหมวดหมู่นี้รวมถึงความคิดเห็นของผู้เชี่ยวชาญและผู้ใช้.

ทำให้ตารางของคุณเป็นปกติ

การทำให้เป็นปกติเป็นขั้นตอนแรกที่คุณควรทำเมื่อมันมาถึงการจัดเก็บข้อมูลในฐานข้อมูลของคุณ ตารางของคุณควรได้รับการจัดระเบียบอย่างดีเพื่อลดความซ้ำซ้อน คุณควรออกแบบกฎเพื่อเชื่อมโยงข้อมูลในตารางต่าง ๆ.

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

ใช้ประเภทข้อมูลที่ถูกต้อง

ตรวจสอบให้แน่ใจว่าคุณใช้ชนิดข้อมูลที่ถูกต้องในตาราง ตัวอย่างเช่นคุณสามารถจัดเก็บรหัสลูกค้าที่ยื่นลงในฟิลด์ “จำนวนเต็ม” แทนที่จะเป็นประเภทข้อมูล “Varchar” เพราะแบบเดิมมีน้ำหนักเบาและเร็วกว่าการสืบค้น.

สร้างดัชนีคอลัมน์ทั้งหมด

คอลัมน์ทั้งหมดที่ใช้ใน “ที่ไหน”, “จัดกลุ่มตาม”, “เข้าร่วม” และ “เรียงลำดับตาม” ควรมีการจัดทำดัชนีตั้งแต่ต้น สิ่งนี้ทำให้มั่นใจได้ว่าฐานข้อมูลจะไม่ทำการสแกนแบบเต็มตารางเมื่อพยายามดึงข้อมูลระเบียน.

ตัวอย่างเช่นในแบบสอบถามด้านล่างฟิลด์ Customer_Id และ Transaction_Date ควรได้รับการจัดทำดัชนี:

เลือก * จากคำสั่งซื้อที่ Customer_Id = ‘1041’ คำสั่งซื้อโดย Transaction_Date asc

ใช้คำอธิบายเพื่อวิเคราะห์คำค้นหา

หากข้อความค้นหาทำงานช้าให้นำหน้าด้วยคำหลัก “อธิบาย” เพื่อดูพฤติกรรมและรับข้อมูลว่าคำสั่งนั้นทำงานอยู่เบื้องหลังได้อย่างไร.

ตัวอย่างเช่นเราสามารถทำซ้ำการค้นหาของเราด้านบนโดยใช้คำหลักอธิบายดังต่อไปนี้:

อธิบายการเลือก * จากคำสั่งซื้อที่ Customer_Id = ‘1041’ คำสั่งซื้อโดย Transaction_Date asc

เมื่อคุณเรียกใช้แบบสอบถามเช่นนี้คุณควรตรวจสอบคอลัมน์ possible_keys’ ในชุดบันทึกที่ส่งคืน หากมูลค่าของ possible_keys’ คือ ‘null’, คุณสามารถเพิ่มดัชนีเพื่อเพิ่มความเร็วในการสืบค้น.

ใช้ ‘union by’ เพื่อเร่งการสืบค้น

คำสั่ง like อาจช้ามากหากมีการเรียกใช้หลายคอลัมน์ ตัวอย่างเช่นพิจารณาแบบสอบถามด้านล่าง:

เลือก * จากลูกค้าที่ชื่อ First_Name เช่น ‘fra%’ หรือ Last_Name เช่น ‘joh%’

เราสามารถเพิ่มประสิทธิภาพการค้นหาเดียวกันโดยใช้ข้อสหภาพที่แสดงด้านล่าง:

เลือก * จากลูกค้าที่ First_Name เช่น ‘fra%’ union เลือก * จากลูกค้าที่ Last_Name เช่น ‘joh%’

หลีกเลี่ยงการใช้ฟังก์ชั่นกับดัชนี

เมื่อดำเนินการแบบสอบถามการใช้ฟังก์ชั่นในคอลัมน์ที่จัดทำดัชนีจะทำให้ MySQL / MariaDB ละเว้นดัชนี ตัวอย่างเช่นหากคุณได้จัดทำดัชนี ‘ชื่อ บริษัท’ ในตารางของผู้ขายและใช้ข้อความค้นหาเช่นเดียวกับด้านล่างนี้ดัชนีจะถูกละเว้นทำให้ข้อความค้นหาทำงานช้า.

เลือก * จากผู้ขายที่ Upper (Company_Name) = ‘ABC’

อย่าใช้อักขระไวด์หน้าดัชนี

แบบสอบถามด้านล่างจะทำให้ MySQL / MariaDB ทำการสแกนตารางเต็ม.

เลือก * จากลูกค้าที่ชื่อ First_Name เช่น ‘% fra%’

ใช้ไวยากรณ์ด้านล่างแทน:

เลือก * จากลูกค้าที่ชื่อ First_Name เช่น ‘fra%’

รวมเฉพาะคอลัมน์ที่จำเป็นในคำสั่ง select

ตัวอย่างเช่นหากคุณต้องการส่งคืนรายการสั่งซื้อด้วย ‘ORDER_ID’ และ ‘จำนวน’, คุณสามารถใช้แบบสอบถามด้านล่าง:

เลือก Order_Id จำนวนเงินจากคำสั่งซื้อ

ข้อความค้นหาด้านบนจะทำงานเร็วกว่าข้อความด้านล่างเนื่องจากคำขอหลังทุกฟิลด์.

เลือก * จากคำสั่งซื้อ

ข้อสรุป

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

ตรวจสอบบริการโฮสติ้ง MySQL 3 อันดับแรก:

A2 โฮสติ้ง

ราคาเริ่มต้น:
$ 3.92


ความเชื่อถือได้
9.3


การตั้งราคา
9.0


เป็นมิตรกับผู้ใช้
9.3


สนับสนุน
9.3


คุณสมบัติ
9.3

อ่านความคิดเห็น

เยี่ยมชม A2 Hosting

FastComet

ราคาเริ่มต้น:
$ 2.95


ความเชื่อถือได้
9.7


การตั้งราคา
9.5


เป็นมิตรกับผู้ใช้
9.7


สนับสนุน
9.7


คุณสมบัติ
9.6

อ่านความคิดเห็น

เยี่ยมชม FastComet

Hostinger

ราคาเริ่มต้น:
$ 0.99


ความเชื่อถือได้
9.3


การตั้งราคา
9.3


เป็นมิตรกับผู้ใช้
9.4


สนับสนุน
9.4


คุณสมบัติ
9.2

อ่านความคิดเห็น

เยี่ยมชม Hostinger

บทความเชิงปฏิบัติที่เกี่ยวข้อง

  • วิธีการสำรองและกู้คืน MySQL จาก cPanel
    สื่อกลาง
  • วิธีการจัดการฐานข้อมูล MySQL และผู้ใช้บน cPanel
    สื่อกลาง
  • วิธีการย้ายเว็บไซต์ WordPress ของคุณจากเว็บเซิร์ฟเวอร์ในพื้นที่ของคุณไปยังเว็บไซต์สดของคุณ
    สื่อกลาง
  • วิธีปิดการใช้งาน MySQL 5 "โหมดเข้มงวด" บน Ubuntu 18.04 VPS หรือเซิร์ฟเวอร์เฉพาะ
    สื่อกลาง
  • วิธีการติดตั้ง phpIPAM บน CentOS 7
    สื่อกลาง
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me