คำถามง่าย ๆ แต่มันดุด่าฉันในขณะนี้ ....
"ค่าใช้จ่าย" ใน MySQL คืออะไรและฉันควรจะกังวล?
การคลิกที่ "ตารางเพิ่มประสิทธิภาพ" ไม่แก้ไขจริงหรือไม่
คำถามง่าย ๆ แต่มันดุด่าฉันในขณะนี้ ....
"ค่าใช้จ่าย" ใน MySQL คืออะไรและฉันควรจะกังวล?
การคลิกที่ "ตารางเพิ่มประสิทธิภาพ" ไม่แก้ไขจริงหรือไม่
คำตอบ:
ดูเหมือนว่าโอเวอร์เฮดเป็นพื้นที่ว่างชั่วคราวที่ฐานข้อมูลที่ใช้ในการเรียกใช้คิวรีบางรายการดังนั้นคุณควรกังวลเฉพาะเมื่อสิ่งนี้สูงมาก
คุณสามารถเปรียบเทียบ 'เพิ่มประสิทธิภาพของตาราง' กับการจัดเรียงข้อมูลของฮาร์ดไดรฟ์ของคุณ
ฉันพูด:
ทุกครั้งที่ฐานข้อมูลต้องการการบำรุงรักษาบางรูปแบบเพื่อให้อยู่ในระดับประสิทธิภาพที่ดีที่สุด การล้างแถวที่ถูกลบการแบ่งการบีบอัดการจัดการพา ธ ดัชนีการดีแฟรกเมนต์ ฯลฯ เป็นสิ่งที่เรียกว่า OPTIMIZATION ใน mysql และคำอื่น ๆ ในฐานข้อมูลอื่น ตัวอย่างเช่น IBM DB2 / 400 เรียกมันว่า REORGANIZE PHYSICAL FILE MEMBER
มันเหมือนกับการเปลี่ยนน้ำมันเครื่องในรถของคุณหรือปรับแต่ง คุณอาจคิดว่าคุณไม่จำเป็นต้องทำ แต่การทำเช่นนั้นเพื่อให้รถของคุณทำงานได้ดีขึ้นคุณจะได้รับไมล์สะสมที่ดีขึ้น ฯลฯ รถที่ได้รับไมล์สะสมจำนวนมากต้องใช้การปรับแต่งบ่อยครั้งขึ้น ฐานข้อมูลที่มีการใช้งานจำนวนมากต้องการสิ่งเดียวกัน หากคุณทำการอัปเดตและ / หรือลบจำนวนมากและโดยเฉพาะอย่างยิ่งหากตารางของคุณมีคอลัมน์ความยาวผันแปร (VARCHAR, TEXT และอื่น ๆ ) คุณต้องติดตามความคืบหน้า
หากคุณกำลังพูดถึงสิ่งที่phpMyAdmin
เรียกว่าoverhead
มันเป็นขนาดที่แท้จริงของตาราง datafile เทียบกับขนาดในอุดมคติของ datafile เดียวกัน (ราวกับเมื่อเพิ่งกู้คืนจากการสำรองข้อมูล)
เพื่อเหตุผลด้านประสิทธิภาพMySQL
อย่าบีบอัดดาต้าไฟล์หลังจากลบหรืออัปเดตแถว
สิ่งนี้overhead
ไม่ดีสำหรับการสแกนตารางเช่นเมื่อแบบสอบถามของคุณจำเป็นต้องเรียกใช้ค่าตารางทั้งหมดจะต้องดูพื้นที่ว่างเพิ่มเติม
คุณอาจกำจัดoverhead
โดยการเรียกใช้OPTIMIZE TABLE
ที่จะกระชับตารางและดัชนีของคุณ
โอเวอร์เฮดคือData_freeของตารางนั่นคือจำนวนไบต์ที่จัดสรร แต่ไม่ได้ใช้ เราสามารถค้นหาได้โดยคำสั่ง SQL SHOW ตารางสถานะ เป็นพื้นที่ว่างในขนาดที่จัดสรรสำหรับตารางของคุณ
ตารางการปรับให้เหมาะสมอาจมีปัญหามาก ตัวอย่างเช่นหากมีการใช้ตารางอย่างมากในไซต์
http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html
หลังจากลบส่วนใหญ่ของตาราง MyISAM หรือ ARCHIVE หรือทำการเปลี่ยนแปลงหลายอย่างในตาราง MyISAM หรือ ARCHIVE ด้วยแถวความยาวผันแปร (ตารางที่มีคอลัมน์ VARCHAR, VARBINARY, BLOB หรือ TEXT) แถวที่ถูกลบจะถูกเก็บไว้ในรายการที่เชื่อมโยงและการดำเนินการ INSERT ที่ตามมาจะนำตำแหน่งแถวเก่ามาใช้ซ้ำ
ฉันเชื่อว่าฉันยืนยันพฤติกรรมนี้แล้ว และมันจะมีประโยชน์มากอย่างแน่นอน