Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การสร้างใหม่หรือซ่อมแซมตารางหรือดัชนี MySQL


การเปลี่ยนแปลงในตารางและดัชนีหมายถึงวิธีที่ 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