การเปิดใช้งาน“ log_queries_not_using_indexes” ปิดใช้งาน“ long_query_time” หรือไม่


13

ผมสังเกตเห็นว่าใน Mysql เมื่อเปิดใช้งานlog_queries_not_using_indexes, slow_query_logและไฟล์บันทึกแบบสอบถามสร้างช้าจะมีจำนวนมากของคำสั่งแม้ว่าเวลาแบบสอบถามน้อยกว่าlong_query_timelong_query_time

ดูเหมือนว่าเมื่อlog_queries_not_using_indexesเปิดใช้งานแล้ว Mysql จะบันทึกการสืบค้นทั้งหมดที่ไม่ได้ใช้ดัชนีไม่ว่า "long_query_time" นั้นคืออะไร

มีวิธีที่จะเอาชนะสิ่งนี้หรือไม่? ฉันหมายถึงมีวิธีบันทึกข้อความค้นหาทั้งหมดที่ใช้เวลานานกว่าlong_query_timeไม่ว่าจะใช้ดัชนีหรือไม่

คำตอบ:


27

นั่นคือพฤติกรรมที่คาดหวัง อ้างถึงเอกสารออนไลน์ แต่โดยสรุป:

  • long_query_timeเป็นเกณฑ์สำหรับเวลาดำเนินการแบบสอบถามที่เกินกว่าจะถูกบันทึกไว้ แบบสอบถามใด ๆ ที่ใช้เวลานานกว่าเกณฑ์จะถูกบันทึกไว้ไม่ว่าจะใช้ดัชนีหรือไม่ก็ตาม

  • log_queries_not_using_indexesบอกให้ MySQL บันทึกการสืบค้นทั้งหมดที่ไม่ได้ใช้ดัชนีเพื่อ จำกัด จำนวนแถวที่สแกน การบันทึกในเงื่อนไขนี้เกิดขึ้นโดยไม่คำนึงถึงเวลาดำเนินการ

หวังว่าจะช่วยอธิบายสิ่งที่คุณเห็น ดูเหมือนว่าคุณอาจต้องการlong_query_timeและไม่ได้ log_queries_not_using_indexesหากเป้าหมายของคุณคือการรวบรวมเฉพาะข้อความค้นหาที่ใช้เวลานานกว่าเกณฑ์ที่กำหนด

ลิงก์เอกสาร: http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_log-queries-not-using-indexes

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_long_query_time


5
MySQL ควรอนุญาตให้ทำการบันทึกแบบสอบถามทั้งสองประเภทนี้ลงในไฟล์ของตนเอง ฉันใช้เทคนิคในการค้นหาบรรทัดที่มีเวลาในการสืบค้นซึ่งทำให้ง่ายต่อการมองเห็นสำหรับการสืบค้นที่ช้า แต่จะดีกว่าถ้ามีไฟล์แยกกัน
Night Owl

มันหมายความว่าอย่างไรเมื่อกล่าวถึงที่นี่โดยเฉพาะ: "การเข้าสู่ระบบในเงื่อนไขนี้เกิดขึ้นโดยไม่คำนึงถึงเวลาดำเนินการ" ?
user10089632

@ user10089632 อ่านเอกสารภายใต้ลิงก์แรกด้านบน
dezso
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.