Isalathiso senqaku
Kweli nqaku, siza kuqwalasela ngakumbi MySQL Eyona ndlela ilungileyo yokuguqula i-MyISAM kwi-injini yokugcina ye-InnoDB kwisiseko sedatha.
Siza kukukhokela inyathelo ngenyathelo kwinkqubo yokuguqula kwaye sikunike iingcebiso eziluncedo kunye namaqhinga okuqinisekisa ukuba yenziwa ngokufanelekileyo nangokukhuselekileyo.
Nokuba ungumlawuli wedatha okanye umphuhlisi, esi sikhokelo siya kukunceda uqonde umahluko phakathi kwe-MyISAM kunye ne-InnoDB, kwaye kutheni ukuguqula kwi-InnoDB kubalulekile ekuphuculeni ukusebenza kunye nokuphucula ukuthembeka kwedatha.
Landela amanyathelo ethu anenkcukacha kwaye uya kukwazi ukuguqula ngokulula eyakho MySQL I-database iguqulwa kwi-injini yokugcina ye-InnoDB, ukuphucula ukusebenza kunye nokuqinisekisa ukhuseleko lwedatha kunye nokuthembeka.

Kwinkqubo yedatha ye-MySQL, i-MyISAM kunye ne-InnoDB ziinjini ezimbini eziqhelekileyo zokugcina. I-MyISAM iyakhawuleza kwaye ifanelekile kwiimeko ezinomsebenzi wokufunda okuninzi.
I-InnoDB ixhasa ukuthengiselana, izitshixo zangaphandle, kunye nokutshixa inqanaba lomqolo, kwaye ifanelekile ngakumbi kwizicelo ezifuna ingqibelelo yedatha kunye nolawulo lwemali. Ke, kufuneka senze ntoni xa sifuna ukuguqula iitafile zeMyISAM kwi-InnoDB?
Kutheni uguqulela iMyISAM ibe yi-InnoDB?
Okokuqala, makhe sithethe malunga nokuba kutheni sisenza olu tshintsho.
Nangona i-MyISAM inokusebenza kakuhle, ineziphene kukhuseleko lwedatha kunye nokusetyenzwa ngaxeshanye.
I-InnoDB inikezela ngenkxaso yentengiselwano, enokuqinisekisa ukuhambelana kwedatha kunye nokusingatha iimeko eziphezulu ze-concurrency.
1. Ingqibelelo yedatha: I-InnoDB ixhasa ukuthengiselana kwaye inokubuyisela umva imisebenzi yokuqinisekisa ukuhambelana kwedatha.
2. Ulawulo lwemali: I-InnoDB isebenzisa ukutshixa kwinqanaba lomqolo, elilungele izicelo eziphezulu zemali.
3. Inkxaso engundoqo yangaphandle: I-InnoDB ixhasa izitshixo zangaphandle, ezinokufezekisa ingqibelelo yedatha.
Indlela yokuguqula i-MyISAM kwi-InnoDB
Singasebenzisa isitatimenti esinye seSQL ukuvelisa iingxelo zoguqulo kuzo zonke iitafile kwaye emva koko sizenze zonke ngaxeshanye.
Oku kuvakala kunzima, kodwa eneneni kulula kakhulu. Amanyathelo nje ambalwa.
Inyathelo 1: Khetha isiseko sedatha
Okokuqala, qiniseka ukuba ukhethe isiseko sedatha ofuna ukusebenza kuso. Le miyalelo ilandelayo ingasetyenziswa:
mysql
USE 你要操作的数据库名;
Inyathelo lesi-2: Veza iingxelo zoguqulo
Okulandelayo, kufuneka sivelise iingxelo zeSQL eziguqula zonke iitafile ze-MyISAM kwiitafile ze-InnoDB.
Oku kunokwenziwa ngokubuza information_schema.tables itheyibhile ukufikelela.
Yenza le ngxelo ilandelayo yeSQL:
SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=InnoDB;')
FROM information_schema.tables
WHERE table_schema="你要操作的数据库名" AND ENGINE="MyISAM";Le nkcazo ivelisa isethi yeengxelo ze-ALTER TABLE ezitshintsha injini yokugcina yetafile nganye ye-MyISAM kwi-InnoDB.
Inyathelo lesi-3: Yenza ingxelo yoguqulo
Khuphela iziphumo ezenziwe kwinyathelo elidlulileyo kwaye uphumeleleAIInokusinceda ukuba sihluze imida ngokulula.
InNcokolaGPTFaka oku kulandelayo:
请帮我过滤以下边框:
+--------------------------------------------------------------+
| ALTER TABLE table1 ENGINE=InnoDB; |
| ALTER TABLE table2 ENGINE=InnoDB; |
| ALTER TABLE table3 ENGINE=InnoDB; |
+--------------------------------------------------------------+
Emva koko, xa iqhutywa kwi-MySQL, i-MySQL iya kuphumeza ezi nkcazo ze-ALTER TABLE ngokulandelelana ukuguqula zonke iitafile ze-MyISAM kwiitafile ze-InnoDB.
Umzekelo
Cinga ukuba isiseko sedatha ofuna ukusisebenza sinegama example_db, yenza la manyathelo alandelayo:
- Khetha uvimba weenkcukacha:
USE example_db;
- Yenza ingxelo yoguqulo:
SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=InnoDB;')
FROM information_schema.tables
WHERE table_schema="example_db" AND ENGINE="MyISAM";- Khuphela inkcazo eyenziweyo kwaye uyisebenzise kwi-MySQL:
ALTER TABLE table1 ENGINE=InnoDB;
ALTER TABLE table2 ENGINE=InnoDB;
Izilumkiso
Ngaphambi kokwenza lo msebenzi wokuguqula ibhetshi, kukho amanqaku ambalwa ekufuneka uwaqaphele:
1. Ugcino lwedatha: Ngaphambi kokuba wenze ukuguqulwa kwebhetshi, qiniseka ukuba uthatha i-backup epheleleyo yedatabase ukukhusela ukulahleka kwedatha.
2. Indawo yovavanyo: Kungcono ukuvavanya kwindawo yovavanyo kuqala ukuqinisekisa ukuba inkqubo yokuguqulwa ayiyi kuchaphazela ukusebenza okuqhelekileyo kwesicelo.
3. Iimvume zesiseko sedatha: Qinisekisa ukuba unamalungelo awoneleyo e-database ukwenza imisebenzi ye-ALTER TABLE.
ukuququmbela
Ngala manyathelo angasentla, sinokuguqula ngokulula zonke iitafile ze-MyISAM kwi-database ye-MySQL kwiitafile ze-InnoDB. Ukwenza oko akunako nje ukuphucula amandla okusebenza ngaxeshanye kwisiseko sedatha, kodwa kwandise ukhuseleko kunye nokuthembeka kwedatha.
Ndiyathemba ukuba eli nqaku linokukunceda uqonde ngcono kwaye usebenzise i-database ye-MySQL. Ukuba unayo nayiphi na imibuzo okanye iingcebiso, nceda ushiye umyalezo kwindawo yokuphawula.
Yiyo yonke into malunga nokuguqulwa kwebhetshi yeMyISAM kwi-InnoDB. Ngoku ungayizama!
🔧💡Ufuna ukwazi indlela yokusebenzisaphpMyAdminGuqula uhlobo lwetheyibhile yedatha ye-InnoDB kwi-injini engagqibekanga ye-MyISAM? Eli nqaku libonelela ngamanyathelo aneenkcukacha kunye nesikhokelo sokwenza uguqulo lube lula!
👇Iyacetyiswa ukuba uqhubeke ufunda👇
Cofa ikhonkco ukuze ufunde ngakumbi izakhono zokuguqula ugcino lwedatha kwaye ukwandise ulawulo lwakho lwedathabheyisi! 📚💻
Ndiyathemba Chen Weiliang Blog ( https://www.chenweiliang.com/ ) kwabelwana "Indlela yokuguqula i-batch database kwi-MyISAM kwi-injini yokugcina ye-InnoDB?" 》, eluncedo kuwe.
Wamkelekile ukwabelana ngekhonkco leli nqaku:https://www.chenweiliang.com/cwl-31790.html

