วิธีการสร้างแบบสอบถามที่ช้าใน mysql ได้อย่างไร


15

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

ฉันได้ลองทำสิ่งต่อไปนี้เพื่อรับแบบสอบถามในบันทึกการสืบค้นที่ช้า:

ตั้งเวลาแบบสอบถามช้าเป็น 1 วินาที

ลบดัชนีหลายรายการ

เน้นระบบ:

stress --cpu 100 --io 100 --vm 2 --vm-bytes 128M --timeout 1m

เขียนสคริปต์การโทรเว็บเพจพื้นฐานโดยใช้ wget

สิ่งนี้ไม่ได้สร้างการสืบค้นที่ช้า มีวิธีอื่นในการเน้นหนักของฐานข้อมูลเพื่อสร้างปัญหาหรือไม่? ฉันไม่มีทักษะเพียงพอที่จะเขียน Jmeter ที่ซับซ้อนหรือเครื่องกำเนิดไฟฟ้าโหลดอื่น ๆ ฉันหวังว่าบางทีสิ่งที่สร้างไว้ใน mysql หรือเคล็ดลับ linux อื่นนอกเหนือจากความเครียด


1
+1 สำหรับการขอให้ได้รับ quries ช้า หากเป็นเช่นนี้ในกรณีจริง ๆ เท่านั้น: D
red

คำตอบ:


5

กร้าmysqlslap คุณสามารถส่งแบบสอบถามของ webapp ของคุณด้วย - แบบสอบถามและระบุลูกค้าพร้อมกันด้วย --concurrency


สิ่งนี้ทำงานได้ดีที่สุด ... โดยใช้สิ่งนี้และการรวมกันของการปรับฐานข้อมูล
Gray Race

34

เทียมทั้งหมด แต่คุณสามารถใช้sleep()ฟังก์ชั่น:

select sleep(10);

ในบันทึก:

Time                 Id Command    Argument
# Time: 110629 16:19:13
# User@Host: mysql[mysql] @ localhost []
# Query_time: 10.000218  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1309389553;
select sleep(10);

ขอบคุณสำหรับคำแนะนำ ... มันจะทำให้บันทึกเติบโต แต่ฉันต้องการให้พวกเขาเป็นข้อความค้นหาที่ถูกต้องสำหรับแอป ด้วยวิธีนี้ฉันสามารถสาธิตอธิบายและเครื่องมือการวินิจฉัยอื่น ๆ
Gray Race

:) อืม ... อาจจะเป็นกลยุทธ์LOCK TABLESก็ได้ นั่นอาจเป็นเรื่องเล็กเกินไป
Mark Wagner

1
มักจะเลือก * จาก ((เลือก * จากฐานข้อมูล) x) และการได้รับมากขึ้นเรื่อย ๆ จะเป็นเคล็ดลับสำหรับฉัน
alexyorke

ใช้DO SLEEP(10);ถ้าคุณไม่ต้องการผลลัพธ์ของ SLEEP ในการสืบค้นของคุณ
Rasmus Friis Kjeldsen

1

บางทีการยกเลิกการปรับฐานข้อมูลอาจช่วยได้? ตัวอย่างเช่นการลดขนาด key_buffers?

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