การเปลี่ยนแปลงในตารางและดัชนีหมายถึงวิธีที่ MySQL จัดการประเภทข้อมูลและชุดอักขระ การซ่อมแซมหรืออัปเกรดตารางที่จำเป็นจะรายงานโดย CHECK TABLE, mysqlcheck หรือ mysql_upgrade
สร้างตารางใหม่
มีหลายวิธีในการสร้างตารางใหม่ บางส่วนได้รับการระบุไว้ด้านล่าง -
-
วิธีการถ่ายโอนข้อมูลและโหลดซ้ำ
-
เปลี่ยนวิธีการตาราง
-
วิธีการซ่อมโต๊ะ
ให้เราเข้าใจโดยย่อ -
วิธีถ่ายโอนข้อมูลและโหลดซ้ำ
หากตารางถูกสร้างขึ้นใหม่เนื่องจากเวอร์ชันต่างๆ ของ MySQL เวอร์ชันต่างๆ ไม่สามารถจัดการตารางได้หลังจากอัปเกรดหรือดาวน์โหลดไบนารี (แทนที่) แล้ว จำเป็นต้องใช้วิธีการดัมพ์และโหลดซ้ำ
สามารถสร้างตารางใหม่ได้โดยการดัมพ์และโหลดใหม่ ซึ่งสามารถทำได้โดยใช้ 'mysqldump' และสร้างไฟล์ดัมพ์ และอนุญาตให้ mysql โหลดไฟล์ซ้ำ สามารถทำได้โดยใช้คำสั่งด้านล่าง -
mysqldump db_name t1 > dump.sql mysql db_name < dump.sql
ถ้าต้องสร้างตารางทั้งหมดในฐานข้อมูลเดียว ชื่อของฐานข้อมูลสามารถระบุได้โดยไม่ต้องใช้ชื่อตารางใดๆ สามารถทำได้โดยใช้คำสั่งด้านล่าง −
mysqldump db_name > dump.sql mysql db_name < dump.sql
หากต้องสร้างตารางทั้งหมดในฐานข้อมูลทั้งหมดขึ้นมาใหม่ จะต้องใช้ตัวเลือก '− - ฐานข้อมูลทั้งหมด' สามารถทำได้โดยใช้คำสั่งด้านล่าง −
mysqldump --all-databases > dump.sql mysql < dump.sql
เปลี่ยนวิธีตาราง
หากจำเป็นต้องสร้างตารางใหม่โดยใช้วิธี ALTER TABLE คุณสามารถใช้การเปลี่ยนแปลง "null" ได้ สามารถใช้คำสั่ง ALTER TABLE ซึ่งเปลี่ยนตารางเพื่อให้สามารถใช้กลไกการจัดเก็บข้อมูลได้ ให้เรายกตัวอย่าง:สมมติว่า TblName เป็นตาราง InnoDB คำสั่งด้านล่างสามารถใช้เพื่อสร้างตารางใหม่ได้ -
ALTER TABLE TblName ENGINE = InnoDB;
วิธีการซ่อมแซมโต๊ะ
วิธีการ REPAIR TABLE ใช้ได้กับตาราง MyISAM, ARCHIVE และ CSV เท่านั้น สามารถใช้คำสั่ง REPAIR TABLE หากการดำเนินการตรวจสอบตารางแสดงว่าไฟล์เสียหายหรือจำเป็นต้องอัปเกรด ให้เรายกตัวอย่าง:เพื่อซ่อมแซมตาราง MyISAM คำสั่งด้านล่างสามารถดำเนินการได้ -
REPAIR TABLE TblName;
mysqlcheck −−repair ให้การเข้าถึงบรรทัดคำสั่งไปยังคำสั่ง REPAIR TABLE วิธีนี้เป็นวิธีที่สะดวกกว่าในการซ่อมตาราง เนื่องจากคุณสามารถใช้ −−databases เพื่อซ่อมแซมตารางเฉพาะในฐานข้อมูล หรือตัวเลือก −−all−databases เพื่อซ่อมแซมตารางทั้งหมดในฐานข้อมูลทั้งหมด สามารถทำได้โดยใช้คำสั่งด้านล่าง -
mysqlcheck −−repair −−databases db_name ... mysqlcheck −−repair −−all−databases