ວິທີການແປງຖານຂໍ້ມູນ MySQL ຈາກ MyISAM ເປັນ InnoDB storage engine?

ໃນບົດຄວາມນີ້, ພວກເຮົາຈະພິຈາລະນາຢ່າງໃກ້ຊິດ MySQL ວິທີທີ່ດີທີ່ສຸດໃນການແປງ MyISAM ເປັນ InnoDB storage engine ໃນຖານຂໍ້ມູນ.

ພວກເຮົາຈະນໍາພາທ່ານເທື່ອລະຂັ້ນຕອນຜ່ານຂະບວນການປ່ຽນໃຈເຫລື້ອມໃສແລະໃຫ້ຄໍາແນະນໍາແລະຄໍາແນະນໍາທີ່ເປັນປະໂຫຍດເພື່ອຮັບປະກັນວ່າມັນເຮັດໄດ້ຢ່າງມີປະສິດທິພາບແລະປອດໄພ.

ບໍ່ວ່າທ່ານເປັນຜູ້ຄຸ້ມຄອງຖານຂໍ້ມູນຫຼືນັກພັດທະນາ, ຄູ່ມືນີ້ຈະຊ່ວຍໃຫ້ທ່ານເຂົ້າໃຈຄວາມແຕກຕ່າງລະຫວ່າງ MyISAM ແລະ InnoDB, ແລະເປັນຫຍັງການປ່ຽນເປັນ InnoDB ແມ່ນສໍາຄັນຕໍ່ການເພີ່ມປະສິດທິພາບແລະການປັບປຸງຄວາມຫນ້າເຊື່ອຖືຂອງຂໍ້ມູນ.

ປະ​ຕິ​ບັດ​ຕາມ​ຂັ້ນ​ຕອນ​ລະ​ອຽດ​ຂອງ​ພວກ​ເຮົາ​ແລະ​ທ່ານ​ຈະ​ສາ​ມາດ​ປ່ຽນ​ຂອງ​ທ່ານ​ໄດ້​ຢ່າງ​ງ່າຍ​ດາຍ​ MySQL ຖານຂໍ້ມູນຖືກປ່ຽນເປັນເຄື່ອງຈັກໃນການເກັບຮັກສາ InnoDB, ປັບປຸງການປະຕິບັດແລະຮັບປະກັນຄວາມປອດໄພຂອງຂໍ້ມູນແລະຄວາມສົມບູນ.

ວິທີການແປງຖານຂໍ້ມູນ MySQL ຈາກ MyISAM ເປັນ InnoDB storage engine?

ໃນລະບົບຖານຂໍ້ມູນ MySQL, MyISAM ແລະ InnoDB ແມ່ນສອງເຄື່ອງຈັກເກັບຮັກສາທົ່ວໄປ. MyISAM ແມ່ນໄວ ແລະເໝາະສົມກັບສະຖານະການທີ່ມີການອ່ານຫຼາຍອັນ.

InnoDB ສະຫນັບສະຫນູນການເຮັດທຸລະກໍາ, ກະແຈຕ່າງປະເທດ, ແລະການລັອກລະດັບແຖວ, ແລະແມ່ນເຫມາະສົມສໍາລັບຄໍາຮ້ອງສະຫມັກທີ່ຕ້ອງການຄວາມສົມບູນຂອງຂໍ້ມູນແລະການຄວບຄຸມ concurrency. ດັ່ງນັ້ນ, ພວກເຮົາຄວນເຮັດແນວໃດເມື່ອພວກເຮົາຕ້ອງການ batch ປ່ຽນຕາຕະລາງ MyISAM ເປັນ InnoDB?

ເປັນຫຍັງປ່ຽນ MyISAM ເປັນ InnoDB?

ກ່ອນອື່ນ, ໃຫ້ເວົ້າກ່ຽວກັບເຫດຜົນທີ່ພວກເຮົາເຮັດການປ່ຽນນີ້.

ເຖິງແມ່ນວ່າ MyISAM ມີປະສິດທິພາບດີ, ມັນມີຂໍ້ບົກຜ່ອງດ້ານຄວາມປອດໄພຂອງຂໍ້ມູນແລະການປຸງແຕ່ງພ້ອມກັນ.

InnoDB ສະຫນອງການສະຫນັບສະຫນູນການເຮັດທຸລະກໍາ, ເຊິ່ງສາມາດຮັບປະກັນຄວາມສອດຄ່ອງຂອງຂໍ້ມູນແລະຈັດການກັບສະຖານະການທີ່ສອດຄ່ອງກັນສູງ.

1. ຄວາມສົມບູນຂອງຂໍ້ມູນ: InnoDB ສະຫນັບສະຫນູນການເຮັດທຸລະກໍາແລະສາມາດ rollback ການດໍາເນີນງານເພື່ອຮັບປະກັນຄວາມສອດຄ່ອງຂອງຂໍ້ມູນ.

2. ການຄວບຄຸມຄວາມສອດຄ່ອງ: InnoDB ໃຊ້ການລັອກລະດັບແຖວ, ເຊິ່ງເຫມາະສົມກັບຄໍາຮ້ອງສະຫມັກທີ່ມີສະກຸນເງິນສູງ.

3. ການສະໜັບສະໜູນຫຼັກຈາກຕ່າງປະເທດ: InnoDB ສະຫນັບສະຫນູນກະແຈຕ່າງປະເທດ, ເຊິ່ງສາມາດບັນລຸຄວາມສົມບູນຂອງຂໍ້ມູນອ້າງອີງ.

ວິທີການ batch ປ່ຽນ MyISAM ເປັນ InnoDB

ພວກ​ເຮົາ​ສາ​ມາດ​ນໍາ​ໃຊ້​ຄໍາ​ສັ່ງ SQL ຫນຶ່ງ​ເພື່ອ​ສ້າງ​ຄໍາ​ບັນ​ຍາຍ​ການ​ປ່ຽນ​ແປງ​ສໍາ​ລັບ​ຕາ​ຕະ​ລາງ​ທັງ​ຫມົດ​ແລະ​ຫຼັງ​ຈາກ​ນັ້ນ​ປະ​ຕິ​ບັດ​ທັງ​ຫມົດ​ໃນ​ເວ​ລາ​ດຽວ​ກັນ​.

ຟັງ​ຄື​ວ່າ​ມີ​ຄວາມ​ສັບ​ສົນ, ແຕ່​ໃນ​ຕົວ​ຈິງ​ແລ້ວ​ມັນ​ງ່າຍ​ດາຍ​ຫຼາຍ​. ພຽງແຕ່ສອງສາມຂັ້ນຕອນ.

ຂັ້ນຕອນທີ 1: ເລືອກຖານຂໍ້ມູນ

ທໍາອິດ, ໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ເລືອກຖານຂໍ້ມູນທີ່ທ່ານຕ້ອງການທີ່ຈະດໍາເນີນການ. ຄໍາສັ່ງຕໍ່ໄປນີ້ສາມາດຖືກນໍາໃຊ້:

mysql
USE 你要操作的数据库名;

ຂັ້ນຕອນທີ 2: ສ້າງຄໍາຖະແຫຼງການປ່ຽນໃຈເຫລື້ອມໃສ

ຕໍ່ໄປ, ພວກເຮົາຈໍາເປັນຕ້ອງສ້າງຄໍາສັ່ງ SQL ທີ່ປ່ຽນຕາຕະລາງ MyISAM ທັງຫມົດເປັນຕາຕະລາງ InnoDB.

ນີ້ສາມາດເຮັດໄດ້ໂດຍການສອບຖາມ information_schema.tables ຕາຕະລາງເພື່ອບັນລຸ.

ດໍາເນີນການຄໍາສັ່ງ SQL ຕໍ່ໄປນີ້:

SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=InnoDB;') 
FROM information_schema.tables 
WHERE table_schema="你要操作的数据库名" AND ENGINE="MyISAM";

ຄໍາຖະແຫຼງການນີ້ສ້າງຊຸດຂອງຄໍາສັ່ງ ALTER TABLE ທີ່ປ່ຽນເຄື່ອງຈັກການເກັບຮັກສາຂອງແຕ່ລະຕາຕະລາງ MyISAM ເປັນ InnoDB.

ຂັ້ນ​ຕອນ​ທີ 3​: ປະ​ຕິ​ບັດ​ຄໍາ​ຖະ​ແຫຼງ​ການ​ປ່ຽນ​ໃຈ​ເຫລື້ອມ​ໃສ​

ຄັດລອກຜົນໄດ້ຮັບທີ່ສ້າງຂຶ້ນໃນຂັ້ນຕອນທີ່ຜ່ານມາແລະຜ່ານAIມັນສາມາດຊ່ວຍພວກເຮົາກັ່ນຕອງອອກໄດ້ງ່າຍຂຶ້ນ.

ສົນທະນາ GPTກະລຸນາໃສ່ຕໍ່ໄປນີ້:

请帮我过滤以下边框:

+--------------------------------------------------------------+
| ALTER TABLE table1 ENGINE=InnoDB; |
| ALTER TABLE table2 ENGINE=InnoDB; |
| ALTER TABLE table3 ENGINE=InnoDB; |
+--------------------------------------------------------------+

ຫຼັງຈາກນັ້ນ, ເມື່ອດໍາເນີນການໃນ MySQL, MySQL ຈະປະຕິບັດຄໍາສັ່ງ ALTER TABLE ເຫຼົ່ານີ້ຕາມລໍາດັບເພື່ອປ່ຽນຕາຕະລາງ MyISAM ທັງຫມົດເປັນຕາຕະລາງ InnoDB.

ຕົວຢ່າງ

ສົມມຸດວ່າຖານຂໍ້ມູນທີ່ທ່ານຕ້ອງການທີ່ຈະດໍາເນີນການມີຊື່ example_db, ປະ​ຕິ​ບັດ​ຂັ້ນ​ຕອນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

  1. ເລືອກຖານຂໍ້ມູນ:
USE example_db;
  1. ສ້າງຖະແຫຼງການການແປງ:
SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=InnoDB;') 
FROM information_schema.tables 
WHERE table_schema="example_db" AND ENGINE="MyISAM";
  1. ສຳເນົາຄຳຖະແຫຼງທີ່ສ້າງຂຶ້ນ ແລະດຳເນີນການໃນ MySQL:
ALTER TABLE table1 ENGINE=InnoDB;
ALTER TABLE table2 ENGINE=InnoDB;

ຂໍ້ຄວນລະວັງ

ກ່ອນ​ທີ່​ຈະ​ປະ​ຕິ​ບັດ​ການ​ປ່ຽນ​ແປງ batch ນີ້​, ມີ​ບາງ​ຈຸດ​ທີ່​ຈະ​ສັງ​ເກດ​:

1. ການ​ສໍາ​ຮອງ​ຂໍ້​ມູນ​: ກ່ອນທີ່ຈະປະຕິບັດການແປງ batch, ໃຫ້ແນ່ໃຈວ່າໃຊ້ເວລາສໍາຮອງຂໍ້ມູນທີ່ສົມບູນຂອງຖານຂໍ້ມູນເພື່ອປ້ອງກັນການສູນເສຍຂໍ້ມູນ.

2. ສະພາບແວດລ້ອມການທົດສອບ: ມັນດີທີ່ສຸດທີ່ຈະທົດສອບໃນສະພາບແວດລ້ອມການທົດສອບກ່ອນເພື່ອຮັບປະກັນວ່າຂະບວນການປ່ຽນໃຈເຫລື້ອມໃສຈະບໍ່ມີຜົນກະທົບຕໍ່ການເຮັດວຽກປົກກະຕິຂອງແອັບພລິເຄຊັນ.

3. ການ​ອະ​ນຸ​ຍາດ​ຖານ​ຂໍ້​ມູນ​: ໃຫ້ແນ່ໃຈວ່າທ່ານມີສິດທິໃນຖານຂໍ້ມູນພຽງພໍເພື່ອດໍາເນີນການ ALTER TABLE.

ໃນການສະຫລຸບ

ດ້ວຍຂັ້ນຕອນຂ້າງເທິງ, ພວກເຮົາສາມາດປ່ຽນຕາຕະລາງ MyISAM ທັງໝົດໃນຖານຂໍ້ມູນ MySQL ເປັນຕາຕະລາງ InnoDB ໄດ້ຢ່າງງ່າຍດາຍ. ການເຮັດດັ່ງນັ້ນບໍ່ພຽງແຕ່ສາມາດປັບປຸງຄວາມສາມາດໃນການປຸງແຕ່ງພ້ອມກັນຂອງຖານຂໍ້ມູນ, ແຕ່ຍັງເພີ່ມຄວາມປອດໄພແລະຄວາມສົມບູນຂອງຂໍ້ມູນ.

ຂ້ອຍຫວັງວ່າບົດຄວາມນີ້ສາມາດຊ່ວຍໃຫ້ທ່ານເຂົ້າໃຈແລະປະຕິບັດຖານຂໍ້ມູນ MySQL ໄດ້ດີຂຶ້ນ. ຖ້າ​ຫາກ​ທ່ານ​ມີ​ຄໍາ​ຖາມ​ຫຼື​ຄໍາ​ແນະ​ນໍາ​ໃດ​ຫນຶ່ງ​, ກະ​ລຸ​ນາ​ອອກ​ຂໍ້​ຄວາມ​ໃນ​ພື້ນ​ທີ່​ຄໍາ​ເຫັນ​.

ນັ້ນແມ່ນທັງຫມົດກ່ຽວກັບການປ່ຽນຊຸດ MyISAM ເປັນ InnoDB. ດຽວນີ້ທ່ານສາມາດລອງມັນອອກໄດ້!

🔧💡ຢາກຮູ້ວິທີໃຊ້phpMyAdminປ່ຽນປະເພດຕາຕະລາງຂໍ້ມູນ InnoDB ເປັນເຄື່ອງຈັກເລີ່ມຕົ້ນ MyISAM ບໍ? ບົດ​ຄວາມ​ນີ້​ໃຫ້​ທ່ານ​ມີ​ຂັ້ນ​ຕອນ​ລະ​ອຽດ​ແລະ​ຄໍາ​ແນະ​ນໍາ​ເພື່ອ​ເຮັດ​ໃຫ້​ການ​ປ່ຽນ​ໃຈ​ເຫລື້ອມ​ໃສ​ງ່າຍ​!

👇ແນະນຳໃຫ້ອ່ານຕໍ່👇

ຄລິກລິ້ງເພື່ອຮຽນຮູ້ທັກສະການແປງຖານຂໍ້ມູນເພີ່ມເຕີມ ແລະເພີ່ມປະສິດທິພາບການຈັດການຖານຂໍ້ມູນຂອງທ່ານ! 📚💻

ຫວັງ Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ແບ່ງປັນ "ວິທີການ batch ປ່ຽນຖານຂໍ້ມູນ MySQL ເປັນ MyISAM ເປັນເຄື່ອງຈັກການເກັບຮັກສາ InnoDB?" 》, ຊ່ວຍທ່ານໄດ້.

ຍິນດີຕ້ອນຮັບແບ່ງປັນການເຊື່ອມຕໍ່ຂອງບົດຄວາມນີ້:https://www.chenweiliang.com/cwl-31790.html

ເພື່ອປົດລັອກເຄັດລັບທີ່ເຊື່ອງໄວ້ເພີ່ມເຕີມ🔑, ຍິນດີຕ້ອນຮັບເຂົ້າສູ່ຊ່ອງ Telegram ຂອງພວກເຮົາ!

Share and like ຖ້າທ່ານມັກມັນ! ການແບ່ງປັນ ແລະຖືກໃຈຂອງເຈົ້າເປັນແຮງຈູງໃຈຢ່າງຕໍ່ເນື່ອງຂອງພວກເຮົາ!

 

评论评论

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ທົ່ງນາທີ່ກໍານົດໄວ້ແມ່ນຖືກນໍາໃຊ້ * ປ້າຍ ກຳ ກັບ

ເລື່ອນໄປທາງເທີງ