บันทึกการสืบค้นช้าของ MySQL: คำแนะนำโดยละเอียด
เผยแพร่แล้ว: 2023-08-01บทความนี้เป็นทรัพยากรที่กระชับแต่ครอบคลุมซึ่งออกแบบมาเพื่อให้เข้าใจอย่างชัดเจนเกี่ยวกับบันทึกการสืบค้นช้าของ MySQL และวิธีการตีความอย่างมีประสิทธิภาพ คู่มือนี้มีจุดมุ่งหมายเพื่อไขความซับซ้อนของบันทึกการสืบค้นที่ช้า ช่วยให้ผู้ใช้สามารถระบุและจัดการกับคอขวดของประสิทธิภาพและปัญหาฐานข้อมูลที่อาจเกิดขึ้นได้
การเปิดใช้งาน Slow Query Log สำหรับ MySQL พิสูจน์แล้วว่าเป็นทรัพย์สินที่มีค่าในการวินิจฉัยประสิทธิภาพและความท้าทายด้านประสิทธิภาพที่อาจส่งผลกระทบต่อเซิร์ฟเวอร์ของคุณ ด้วยการระบุข้อความค้นหาที่มีเวลาการดำเนินการที่ช้าอย่างเห็นได้ชัด คุณจะสามารถจัดการกับคำถามเหล่านั้นได้อย่างมีประสิทธิภาพโดยการปรับโครงสร้างแอปพลิเคชันที่รับผิดชอบสำหรับข้อความค้นหาหรือปรับแต่งข้อความค้นหาให้เหมาะสม แนวทางเชิงรุกนี้ช่วยให้แน่ใจว่าการสืบค้นของคุณถูกสร้างขึ้นอย่างมีประสิทธิภาพสูงสุด ซึ่งนำไปสู่การปรับปรุงประสิทธิภาพโดยรวมของระบบในท้ายที่สุด
สารบัญ
รู้เบื้องต้นเกี่ยวกับ MySQL
MySQL เป็นหนึ่งในระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบโอเพ่นซอร์สที่ได้รับความนิยมมากที่สุด ซึ่งใช้กันอย่างแพร่หลายในการจัดเก็บ จัดการ และดึงข้อมูลสำหรับเว็บแอปพลิเคชันและซอฟต์แวร์ต่างๆ เช่นเดียวกับระบบฐานข้อมูลที่ซับซ้อน MySQL มีกลไกการบันทึกที่มีประสิทธิภาพเพื่อบันทึกข้อมูลที่จำเป็นเกี่ยวกับกิจกรรมและประสิทธิภาพ บันทึกเหล่านี้มีบทบาทสำคัญในการตรวจสอบและแก้ไขปัญหาพฤติกรรมของฐานข้อมูล และสามารถให้ข้อมูลเชิงลึกที่มีค่าเกี่ยวกับความสมบูรณ์และประสิทธิภาพของระบบ
ประเภทของบันทึกที่สร้างโดย MySQL
มีบันทึกหลายประเภทที่สร้างโดย MySQL แต่ละประเภทมีจุดประสงค์เฉพาะ:
- บันทึกการสืบค้นทั่วไป : บันทึกนี้บันทึกการสืบค้น SQL ทุกรายการที่ดำเนินการบนเซิร์ฟเวอร์ โดยไม่คำนึงถึงแหล่งที่มา เป็นเครื่องมืออันทรงพลังสำหรับการดีบักและทำความเข้าใจลำดับการสืบค้นที่กำลังดำเนินการ แต่ยังสามารถสร้างข้อมูลจำนวนมหาศาล ทำให้เหมาะสำหรับการวินิจฉัยระยะสั้นเป็นหลัก
- บันทึกข้อผิดพลาด: บันทึกข้อผิดพลาดบันทึกข้อผิดพลาดใด ๆ ที่พบระหว่างการทำงานของเซิร์ฟเวอร์ MySQL ข้อผิดพลาดเหล่านี้อาจรวมถึงปัญหาเกี่ยวกับการเริ่มต้น การปิดระบบ หรือข้อผิดพลาดร้ายแรงอื่นๆ ที่อาจส่งผลต่อฟังก์ชันการทำงานของฐานข้อมูล การตรวจสอบบันทึกข้อผิดพลาดช่วยให้ผู้ดูแลระบบสามารถระบุและแก้ไขปัญหาที่อาจเกิดขึ้นได้อย่างรวดเร็ว
- บันทึกการสืบค้นช้า: ตามที่กล่าวไว้ก่อนหน้านี้ บันทึกการสืบค้นช้าจะบันทึกการสืบค้นที่ใช้เวลานานกว่าเกณฑ์ที่กำหนดไว้ล่วงหน้าในการดำเนินการ บันทึกนี้เป็นเครื่องมือสำคัญในการระบุปัญหาคอขวดของประสิทธิภาพและการสืบค้นที่ไม่มีประสิทธิภาพ ช่วยให้ผู้ดูแลระบบสามารถเพิ่มประสิทธิภาพและปรับปรุงประสิทธิภาพโดยรวมของฐานข้อมูลได้
- บันทึกไบนารี: บันทึกไบนารีประกอบด้วยบันทึกการเปลี่ยนแปลงข้อมูลทั้งหมด (แทรก อัปเดต และลบ) ที่ทำกับฐานข้อมูล มันถูกใช้เพื่อจุดประสงค์ในการจำลองข้อมูล ทำให้สามารถซิงโครไนซ์ข้อมูลระหว่างเซิร์ฟเวอร์ MySQL หลายเครื่องได้
- บันทึกรีเลย์: บันทึกรีเลย์เฉพาะสำหรับการจำลองแบบ MySQL โดยจะเก็บข้อมูลที่ได้รับจากเซิร์ฟเวอร์หลักก่อนที่จะดำเนินการบนเซิร์ฟเวอร์ทาสในการตั้งค่าการจำลองแบบ
จะ เปิดใช้งานบันทึกการสืบค้นช้าของ MySQL ได้ อย่างไร
ด้านล่างนี้เป็นขั้นตอนในการเปิดใช้งานบันทึกการสืบค้นที่ช้าสำหรับ MySQL หรือ MariaDB
- ขั้นแรก คุณต้อง ลงชื่อเข้า ใช้ SSH โดยใช้ Bitwise เปิดไคลเอนต์ Bitwise SSH ระบุรายละเอียดโฮสต์ พอร์ต และชื่อผู้ใช้ของคุณ จากนั้นเลือกรหัสผ่านจากดร็อปดาวน์ Initial Method และดำเนินการต่อโดยคลิกที่ปุ่มเข้าสู่ระบบ ป๊อปอัปจะปรากฏขึ้นพร้อมท์ให้คุณป้อนรหัสผ่าน SSH ป้อนรหัสผ่าน SSH ในฟิลด์ที่ให้มา
2. เข้าถึงไฟล์ /etc/mysql/my.cnf โดยใช้โปรแกรมแก้ไขข้อความ ก่อนอื่นให้ไปที่ New SFTP Window from Bitwise SSH Client
ตอนนี้ พิมพ์ / etc ในแถบค้นหาของไฟล์ระยะไกลแล้วกด Enter
เปิดไฟล์ mysql หรือ MariaDB
ตอนนี้เลือก my.cnf คลิกขวาแล้วคลิกแก้ไข
โปรแกรมแก้ไขข้อความจะปรากฏขึ้น คัดลอกคำสั่งต่อไปนี้ วางที่ด้านล่างของไฟล์ และบันทึก
slow_query_log = 1 slow-query_log_file = /var/log/mysql-slow.log long_query_time = 2
3. ตอนนี้เปิดเทอร์มินัล Bitwise และรันคำสั่งต่อไปนี้เพื่อ สร้างไฟล์ /var/log/mysql-slow.log และกำหนดผู้ใช้ mysql เป็นเจ้าของ
touch /var/log/mysql-slow.log chown mysql:mysql /var/log/mysql-slow.log
4. ในการ รีสตาร์ท MySQL หรือ MariaDB ให้รันคำสั่งด้านล่าง
/usr/local/cpanel/scripts/restartsrv_mysql
อ่านบันทึกการสืบค้นช้าของ MySQL
เข้าถึงไฟล์ที่มีบันทึกการสืบค้นช้าโดยใช้:
/var/log/mysql/mysql-slow.log
ภายในไฟล์บันทึก ข้อความค้นหาที่ช้าแต่ละรายการจะถูกบันทึกเป็นรายการ รายการเหล่านี้มักจะมีรายละเอียดต่างๆ เช่น การประทับเวลา เวลาดำเนินการของแบบสอบถาม จำนวนแถวที่ตรวจสอบ และคำสั่ง SQL จริง
แทนที่จะอ่านบันทึกการสืบค้นที่ช้าโดยตรง มักจะมีประโยชน์มากกว่าหากใช้คำสั่ง "mysqldumpslow" เพื่อแยกวิเคราะห์และสรุปเนื้อหาของบันทึก คุณสามารถรันคำสั่งในขณะที่ล็อกอินในฐานะรูทผ่าน SSH ได้ดังต่อไปนี้:
sudo -i mysqldumpslow /var/log/mysql/mysql-slow.log
จะได้รับผลลัพธ์ด้านล่าง:
คำถามที่พบบ่อย
จุดประสงค์ของคำสั่ง mysqldumpslow คืออะไร?
คำสั่ง mysqldumpslow มีจุดประสงค์ในการแยกวิเคราะห์และสรุปเนื้อหาของ MySQL Slow Query Log ช่วยให้คุณสามารถแยกข้อมูลที่มีค่าออกจากไฟล์บันทึก รวมถึงรายละเอียดเกี่ยวกับการสืบค้นที่ช้าที่เกิดขึ้นบ่อยที่สุดและเวลาดำเนินการตามลำดับ ด้วยการดำเนินการ mysqldumpslow /var/log/mysql/mysql-slow.log คุณสามารถวิเคราะห์และรับข้อมูลเชิงลึกจากการสืบค้นที่ช้าได้อย่างมีประสิทธิภาพ
ฉันสามารถใช้บันทึกการสืบค้นช้าสำหรับการตรวจสอบระยะยาวได้หรือไม่
แม้ว่าบันทึกการสืบค้นช้าจะพิสูจน์ได้ว่ามีประโยชน์สำหรับการวินิจฉัยระยะสั้น แต่การเปิดใช้งานเป็นระยะเวลานานอาจส่งผลให้มีการสร้างปริมาณข้อมูลจำนวนมาก เพื่ออำนวยความสะดวกในการตรวจสอบระยะยาว ขอแนะนำให้สำรวจแนวทางอื่นๆ เช่น การใช้เครื่องมือตรวจสอบและโซลูชันการวิเคราะห์ประสิทธิภาพ การทำเช่นนี้ช่วยป้องกันการล้นของบันทึกด้วยรายการที่มากเกินไป และช่วยให้มั่นใจถึงการจัดการประสิทธิภาพของฐานข้อมูลอย่างมีประสิทธิภาพเมื่อเวลาผ่านไป
บันทึกการสืบค้นช้าสามารถช่วยในการวินิจฉัยปัญหาประสิทธิภาพของฐานข้อมูลได้อย่างไร
บันทึกการสืบค้นช้ามีบทบาทสำคัญในการวินิจฉัยปัญหาประสิทธิภาพของฐานข้อมูล เนื่องจากจะระบุการสืบค้นที่มีเวลาในการดำเนินการช้า ด้วยการวิเคราะห์การสอบถามที่ช้าเหล่านี้ ผู้ดูแลระบบสามารถระบุตำแหน่งคอขวดของประสิทธิภาพและความไร้ประสิทธิภาพในฐานข้อมูลได้อย่างแม่นยำ ด้วยข้อมูลนี้ พวกเขาสามารถดำเนินการปรับแต่งการสืบค้น ปรับโครงสร้างแอปพลิเคชันใหม่ หรือดำเนินการเปลี่ยนแปลงที่จำเป็นเพื่อปรับปรุงประสิทธิภาพของระบบโดยรวมอย่างมาก
ฉันจะเพิ่มประสิทธิภาพการสืบค้นตามข้อมูลจากบันทึกการสืบค้นที่ช้าได้อย่างไร
หลังจากระบุข้อความค้นหาที่ช้าจากบันทึกแล้ว คุณมีโอกาสที่จะเพิ่มประสิทธิภาพโดยใช้วิธีการต่างๆ ซึ่งรวมถึงการเพิ่มดัชนีที่เหมาะสม เขียนคิวรีใหม่ หรือปรับโครงสร้างสคีมาฐานข้อมูล ยิ่งไปกว่านั้น การใช้เทคนิคการเพิ่มประสิทธิภาพการสืบค้นข้อมูล เช่น การอธิบายและการทำโปรไฟล์สามารถให้ข้อมูลเชิงลึกที่มีค่าและนำไปสู่การปรับปรุงประสิทธิภาพการสืบค้นที่สำคัญ
บันทึกการสืบค้นช้าใช้ได้กับ MySQL เท่านั้นหรือใช้กับระบบฐานข้อมูลอื่นได้หรือไม่
บันทึกการสืบค้นช้าได้รับการออกแบบมาเฉพาะสำหรับระบบฐานข้อมูล MySQL และ MariaDB แม้ว่าระบบจัดการฐานข้อมูลอื่นๆ อาจมีคุณสมบัติที่คล้ายคลึงกัน แต่สิ่งสำคัญคือต้องทราบว่ารูปแบบบันทึกและวิธีการเปิดใช้งานอาจแตกต่างกันไปตามระบบต่างๆ