หมายความว่าอย่างไรเมื่อ MySQL อยู่ในสถานะ“ ส่งข้อมูล”?


163

หมายความว่าอย่างไรหากแบบสอบถาม Mysql:

SHOW PROCESSLIST;

ส่งคืน "การส่งข้อมูล" ในคอลัมน์สถานะหรือไม่

ฉันคิดว่ามันหมายถึงแบบสอบถามได้ถูกดำเนินการและ MySQL กำลังส่งข้อมูล "ผลลัพธ์" ไปยังลูกค้า แต่ฉันสงสัยว่าทำไมมันใช้เวลานานมาก (ไม่เกินหนึ่งชั่วโมง)

ขอบคุณ.


1
มันหมายถึงการส่งข้อมูลจากกระบวนการไปยังลูกค้า หากคุณเห็นSending dataว่าเป็นขั้นตอนที่ต้องใช้เวลาหลังจากที่คุณเรียกใช้SHOW PROFILEแล้วเวลาที่ใช้จริงจะเป็นของขั้นตอนก่อนหน้า
NB

น่าเสียดายที่ฉันใช้ข้อความคุณลักษณะ 'SHOW PROFILE' ถูกปิดใช้งานฉันต้องสร้าง MySQL ด้วย 'enable-profiling' แต่ขอขอบคุณสำหรับการตอบกลับของคุณ
user1345414

และมันเป็นคำถามเพิ่มเติม ข้อความค้นหาเสร็จสิ้นภายในแล้วเป็นเรื่องของทรัพยากรสำหรับการส่งข้อมูลเช่นเครือข่ายหรือรถบัสหรือไม่?
user1345414

3
ไม่คุณไม่ได้ฟัง .. เหตุผลที่Sending dataแสดงว่าใช้เวลานานเพราะเป็นข้อผิดพลาดในการทำโปรไฟล์ MySQL เวลาที่แสดงเป็นของขั้นตอนก่อนซึ่งควรจะเป็นExecuting queryหรือคล้ายกัน นั่นหมายถึงแบบสอบถามของคุณใช้เวลาในการดำเนินการ Sending dataขั้นตอนมักจะรวดเร็วเว้นแต่คุณจะส่งกระแสข้อมูลเป็นร้อยเมกะไบต์
NB

3
บางทีคำถามนั้นอาจถูกเปลี่ยนชื่อเป็น "สถานะการส่งข้อมูล" หมายถึงอะไรใน MySQL " มันจะง่ายต่อการค้นหาคำถาม
antitoxic

คำตอบ:


249

นี่เป็นสถานะที่ทำให้เข้าใจผิด ควรเรียกว่า "การอ่านและการกรองข้อมูล"

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

หากคุณมีตารางบันทึก 1M (ไม่มีดัชนี) ซึ่งคุณต้องการเพียงหนึ่งระเบียนMySQLจะยังคงส่งออกสถานะเป็น "ส่งข้อมูล" ในขณะที่สแกนตารางแม้ว่าจะยังไม่ได้ส่งอะไรเลยก็ตาม


12
เอกสารที่อธิบายเพิ่มเติมว่าเหตุผลมีโอกาสมากที่สุดเนื่องจากใช้เวลานานในการเข้าถึงดิสก์: dev.mysql.com/doc/refman/5.0/en/general-thread-states.html
Matthew Kolb

4
และถ้า MySQL เป็น "การส่งข้อมูล" ในขณะที่ใช้ CPU 99% กับ I / O ของดิสก์น้อยมาก
rustyx

@RustyX มีข้อมูลเกี่ยวกับบัฟเฟอร์อยู่ใน RAM แล้วและกำลังเรียงแถว 100k หรือ 1M
sjas

23

ในสถานะนี้:

เธรดกำลังอ่านและประมวลผลแถวสำหรับคำสั่ง SELECTและส่งข้อมูลไปยังไคลเอนต์

เพราะการดำเนินงานที่เกิดขึ้นระหว่างนี้รัฐนี้มีแนวโน้มที่จะดำเนินการ จำนวนมากของการเข้าถึงดิสก์ (อ่าน)

นั่นเป็นเหตุผลที่มันใช้เวลานานกว่าจะเสร็จสมบูรณ์และเป็นสถานะที่ทำงานยาวนานที่สุดตลอดอายุการใช้งานของแบบสอบถามที่กำหนด

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