วันนี้จะมาแนะนำวิธีการ Debug Query บน MySQL  หรือเรียกอีกอย่าง คือ Profiler นั่นเอง  ซึ่งการทำ Profiler นั้น มันมีประโยชน์อย่างมากเลยในการวิเคราะห็ Process/Query ที่ทำงานอยู่บน DataBase ในเวลานั้น  ทำให้เราสามารถรู้ปัญหาต่างๆ หรือเพื่อหาข้อผิดพลาดของ Program ที่เกิดขึ้นระหว่างการเชื่อมต่อ Application กับ Database

สำหรับ MySQL นั้น ในที่นี้เราสามารถทำบน Console Command Line ได้เลย  โดยก่อนอื่นให้ทำการเปิดใช้งาน profiler ก่อน
โดยจะต้องทำการ login เข้า MySQL สะก่อน

จากนั้นใช้คำสั่ง SET profiling = 1;

เมือเปิด profilling เรียบร้อยแล้ว  ให้ลองใช้ Command SQL เพือ Query ดูนะครับ
ในที่นี้ผมลองใช้คำสั่ง show databases; (ซึ่งเป็นการ list database ออกมา)
แต่การ Debug จริง การ Query ก็อาจจะเป็น SQL Query ของ Application

หลังจากนี้ เราสามารถ monitor หรือ debug query ได้เลย
ในที่นี้ผมจะลอง show profilers ที่เคยมีการ query ทั้งหมดออกมาดู
โดยใช้คำสั่ง show profiles;   (คำสั่งนี้จะเป็นการ list profiler ทั้งหมดออกมาก)

ถ้าหากต้องการทีจะดู Information จากการ Query  เราสามารถกำหนด Query ID ได้เช่นกัน
โดยใช้คำสั่ง  show profile for query 1; (ใส่ Query ID ที่ต้องการดู)


หลังจากที่ไม่ได้ใช้งาน Debug Query Profiler แล้ว ก็ควรจะปิดมันไว้ด้วย  โดยใช้คำสั่ง SET profiling = 0;

วิธีที่สอง
นอกจากการ set profiling ยังมีอีกวิธีในการ monitor query  นั่นก็คือ การอ่าน log นั่นเอง

ลองทำการ Enable log   โดยใช้คำสั่ง  SET GLOBAL general_log = ‘ON’

เราสามารถเข้าไปวิเคราะ Log จาก Folder data  (Installed path/data)

ถ้าต้องการปิดใช้งาน query log ก็สามารถใช้คำสั่ง SET GLOBAL general_log = ‘OFF’

ขอบคุณครับ
Admin@rockdevper

Facebook Comments
Share Button

Watchara Pongsri

Senior Software Engineer, Network Engineer CEH, CHFI, ECSA, MCSA My hobby is - Blogger - Programming & Security Researcher

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

วิธีการ Debug : MySQL Query Profiling บน Linux