บันทึกการสืบค้นช้าของ MySQL: คำแนะนำโดยละเอียด

เผยแพร่แล้ว: 2023-08-01
กระจายความรัก

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

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

สารบัญ

รู้เบื้องต้นเกี่ยวกับ MySQL

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

ประเภทของบันทึกที่สร้างโดย MySQL

มีบันทึกหลายประเภทที่สร้างโดย MySQL แต่ละประเภทมีจุดประสงค์เฉพาะ:

  1. บันทึกการสืบค้นทั่วไป : บันทึกนี้บันทึกการสืบค้น SQL ทุกรายการที่ดำเนินการบนเซิร์ฟเวอร์ โดยไม่คำนึงถึงแหล่งที่มา เป็นเครื่องมืออันทรงพลังสำหรับการดีบักและทำความเข้าใจลำดับการสืบค้นที่กำลังดำเนินการ แต่ยังสามารถสร้างข้อมูลจำนวนมหาศาล ทำให้เหมาะสำหรับการวินิจฉัยระยะสั้นเป็นหลัก
  2. บันทึกข้อผิดพลาด: บันทึกข้อผิดพลาดบันทึกข้อผิดพลาดใด ๆ ที่พบระหว่างการทำงานของเซิร์ฟเวอร์ MySQL ข้อผิดพลาดเหล่านี้อาจรวมถึงปัญหาเกี่ยวกับการเริ่มต้น การปิดระบบ หรือข้อผิดพลาดร้ายแรงอื่นๆ ที่อาจส่งผลต่อฟังก์ชันการทำงานของฐานข้อมูล การตรวจสอบบันทึกข้อผิดพลาดช่วยให้ผู้ดูแลระบบสามารถระบุและแก้ไขปัญหาที่อาจเกิดขึ้นได้อย่างรวดเร็ว
  3. บันทึกการสืบค้นช้า: ตามที่กล่าวไว้ก่อนหน้านี้ บันทึกการสืบค้นช้าจะบันทึกการสืบค้นที่ใช้เวลานานกว่าเกณฑ์ที่กำหนดไว้ล่วงหน้าในการดำเนินการ บันทึกนี้เป็นเครื่องมือสำคัญในการระบุปัญหาคอขวดของประสิทธิภาพและการสืบค้นที่ไม่มีประสิทธิภาพ ช่วยให้ผู้ดูแลระบบสามารถเพิ่มประสิทธิภาพและปรับปรุงประสิทธิภาพโดยรวมของฐานข้อมูลได้
  4. บันทึกไบนารี: บันทึกไบนารีประกอบด้วยบันทึกการเปลี่ยนแปลงข้อมูลทั้งหมด (แทรก อัปเดต และลบ) ที่ทำกับฐานข้อมูล มันถูกใช้เพื่อจุดประสงค์ในการจำลองข้อมูล ทำให้สามารถซิงโครไนซ์ข้อมูลระหว่างเซิร์ฟเวอร์ MySQL หลายเครื่องได้
  5. บันทึกรีเลย์: บันทึกรีเลย์เฉพาะสำหรับการจำลองแบบ MySQL โดยจะเก็บข้อมูลที่ได้รับจากเซิร์ฟเวอร์หลักก่อนที่จะดำเนินการบนเซิร์ฟเวอร์ทาสในการตั้งค่าการจำลองแบบ

จะ เปิดใช้งานบันทึกการสืบค้นช้าของ MySQL ได้ อย่างไร

ด้านล่างนี้เป็นขั้นตอนในการเปิดใช้งานบันทึกการสืบค้นที่ช้าสำหรับ MySQL หรือ MariaDB

  1. ขั้นแรก คุณต้อง ลงชื่อเข้า ใช้ SSH โดยใช้ Bitwise เปิดไคลเอนต์ Bitwise SSH ระบุรายละเอียดโฮสต์ พอร์ต และชื่อผู้ใช้ของคุณ จากนั้นเลือกรหัสผ่านจากดร็อปดาวน์ Initial Method และดำเนินการต่อโดยคลิกที่ปุ่มเข้าสู่ระบบ ป๊อปอัปจะปรากฏขึ้นพร้อมท์ให้คุณป้อนรหัสผ่าน SSH ป้อนรหัสผ่าน SSH ในฟิลด์ที่ให้มา
เข้าสู่ระบบ SSH โดยใช้ Bitwise
บันทึกการสืบค้นช้าของ MySQL: คำแนะนำโดยละเอียด

2. เข้าถึงไฟล์ /etc/mysql/my.cnf โดยใช้โปรแกรมแก้ไขข้อความ ก่อนอื่นให้ไปที่ New SFTP Window from Bitwise SSH Client

ไปที่หน้าต่าง SFTP ใหม่จากไคลเอนต์ Bitwise SSH

ตอนนี้ พิมพ์ / etc ในแถบค้นหาของไฟล์ระยะไกลแล้วกด Enter

เปิดใช้งานบันทึกการสืบค้นช้าของ MySQL

เปิดไฟล์ mysql หรือ MariaDB

เปิดใช้งานบันทึกการสืบค้นช้าของ MySQL

ตอนนี้เลือก my.cnf คลิกขวาแล้วคลิกแก้ไข

เปิดใช้งานบันทึกการสืบค้นช้าของ MySQL

โปรแกรมแก้ไขข้อความจะปรากฏขึ้น คัดลอกคำสั่งต่อไปนี้ วางที่ด้านล่างของไฟล์ และบันทึก

 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

จะได้รับผลลัพธ์ด้านล่าง:

อ่านบันทึกการสืบค้นช้าของ MySQL

คำถามที่พบบ่อย

จุดประสงค์ของคำสั่ง mysqldumpslow คืออะไร?

คำสั่ง mysqldumpslow มีจุดประสงค์ในการแยกวิเคราะห์และสรุปเนื้อหาของ MySQL Slow Query Log ช่วยให้คุณสามารถแยกข้อมูลที่มีค่าออกจากไฟล์บันทึก รวมถึงรายละเอียดเกี่ยวกับการสืบค้นที่ช้าที่เกิดขึ้นบ่อยที่สุดและเวลาดำเนินการตามลำดับ ด้วยการดำเนินการ mysqldumpslow /var/log/mysql/mysql-slow.log คุณสามารถวิเคราะห์และรับข้อมูลเชิงลึกจากการสืบค้นที่ช้าได้อย่างมีประสิทธิภาพ

ฉันสามารถใช้บันทึกการสืบค้นช้าสำหรับการตรวจสอบระยะยาวได้หรือไม่

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

บันทึกการสืบค้นช้าสามารถช่วยในการวินิจฉัยปัญหาประสิทธิภาพของฐานข้อมูลได้อย่างไร

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

ฉันจะเพิ่มประสิทธิภาพการสืบค้นตามข้อมูลจากบันทึกการสืบค้นที่ช้าได้อย่างไร

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

บันทึกการสืบค้นช้าใช้ได้กับ MySQL เท่านั้นหรือใช้กับระบบฐานข้อมูลอื่นได้หรือไม่

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