แม้ว่ารูปแบบตาราง MyISAM จะเชื่อถือได้มาก (การเปลี่ยนแปลงทั้งหมดที่ทำกับตารางด้วยคำสั่ง SQL จะถูกเขียนก่อนที่คำสั่งจะส่งคืน) คุณยังคงสามารถได้รับตารางที่เสียหายได้หากมีเหตุการณ์ใด ๆ ต่อไปนี้เกิดขึ้น:
· กระบวนการ mysqld ถูกฆ่าใน ตรงกลางของการเขียน
· เกิดการปิดระบบคอมพิวเตอร์โดยไม่คาดคิด (เช่น คอมพิวเตอร์ปิดระบบ)
· ความล้มเหลวของฮาร์ดแวร์
· คุณสามารถใช้โปรแกรมภายนอก (เช่น myisamchk) บนตารางที่เซิร์ฟเวอร์แก้ไขพร้อมกันได้
· ข้อบกพร่องของซอฟต์แวร์ในโค้ด MySQL หรือ MyISAM
อาการทั่วไปของตารางที่เสียหายคือ:
· เมื่อเลือกข้อมูลจากตาราง คุณได้รับข้อผิดพลาดต่อไปนี้:
· ไฟล์คีย์ไม่ถูกต้องสำหรับตาราง: '...' ลองซ่อมแซมมัน
· แบบสอบถามไม่พบแถวในตารางหรือ ส่งคืนข้อมูลที่ไม่สมบูรณ์
คุณสามารถใช้คำสั่ง CHECK TABLE เพื่อตรวจสอบความสมบูรณ์ของตาราง MyISAM และใช้ REPAIR TABLE เพื่อซ่อมแซมตาราง MyISAM ที่เสียหาย เมื่อ mysqld ไม่ทำงาน คุณยังสามารถใช้คำสั่ง myisamchk เพื่อตรวจสอบหรือซ่อมแซมตารางได้
หากตารางของคุณเสียหายบ่อยครั้ง คุณควรพยายามระบุสาเหตุที่ทำให้เกิดเหตุการณ์เช่นนี้ สิ่งที่สำคัญที่สุดที่ต้องทำความเข้าใจคือตารางเสียหายอันเป็นผลมาจากเซิร์ฟเวอร์หยุดทำงานหรือไม่ คุณสามารถตรวจสอบได้ตั้งแต่เนิ่นๆ โดยดูในบันทึกข้อผิดพลาดสำหรับข้อความ mysqld ที่รีสตาร์ทครั้งล่าสุด หากข้อความดังกล่าวมีอยู่ อาจเป็นไปได้มากว่าความเสียหายของตารางเป็นผลมาจากการที่เซิร์ฟเวอร์หยุดทำงาน มิฉะนั้นอาจเกิดความเสียหายระหว่างการทำงานปกติ นี่เป็นข้อบกพร่อง คุณควรพยายามสร้างกรณีทดสอบที่สามารถทำซ้ำได้ซึ่งแสดงให้เห็นถึงปัญหานี้