Uyiguqula kanjani inqwaba yedatha ye-MySQL isuka ku-MyISAM iye kwinjini yokugcina ye-InnoDB?

Kulesi sihloko, sizobhekisisa MySQL Indlela engcono kakhulu yokuguqula i-MyISAM ibe injini yokugcina ye-InnoDB kusizindalwazi.

Sizokuqondisa isinyathelo ngesinyathelo ngenqubo yokuguqulwa futhi sikunikeze amathiphu awusizo namasu okuqinisekisa ukuthi kwenziwa kahle futhi ngokuphephile.

Kungakhathaliseki ukuthi ungumqondisi wesizindalwazi noma umthuthukisi, lo mhlahlandlela uzokusiza uqonde umehluko phakathi kwe-MyISAM ne-InnoDB, nokuthi kungani ukuguqulela ku-InnoDB kubalulekile ekuthuthukiseni ukusebenza nokuthuthukisa ukuthembeka kwedatha.

Landela izinyathelo zethu ezinemininingwane futhi uzokwazi ukuguqula eyakho kalula MySQL I-database iguqulwa ibe injini yokugcina ye-InnoDB, ithuthukisa ukusebenza futhi iqinisekise ukuvikeleka kwedatha nobuqotho.

Uyiguqula kanjani inqwaba yedatha ye-MySQL isuka ku-MyISAM iye kwinjini yokugcina ye-InnoDB?

Kuhlelo lwedathabheyisi ye-MySQL, i-MyISAM ne-InnoDB izinjini ezimbili ezijwayelekile zokugcina. I-MyISAM iyashesha futhi ilungele izimo ezinokusebenza okuningi kokufunda.

I-InnoDB isekela okwenziwayo, okhiye bakwamanye amazwe, nokukhiywa kwezinga lomugqa, futhi ifaneleka kakhulu izinhlelo zokusebenza ezidinga ubuqotho bedatha nokulawulwa kokuvumelana. Ngakho-ke, yini okufanele siyenze uma sidinga ukuguqula amatafula e-MyISAM abe yi-InnoDB?

Kungani uguqulela i-MyISAM ibe yi-InnoDB?

Okokuqala, ake sikhulume ngokuthi kungani senza lokhu kushintsha.

Nakuba i-MyISAM inokusebenza okuhle, inokushiyeka ekuvikelekeni kwedatha kanye nokucubungula ngesikhathi esisodwa.

I-InnoDB inikeza ukwesekwa kokwenziwe, okungaqinisekisa ukuvumelana kwedatha futhi isingathe izimo eziphezulu zokuvumelana.

1. Ubuqotho bedatha: I-InnoDB isekela okwenziwayo futhi ingabuyisela emuva imisebenzi ukuze kuqinisekiswe ukufana kwedatha.

2. Ukulawula ukuhambisana kwemali: I-InnoDB isebenzisa ukukhiya kwezinga lomugqa, okulungele izinhlelo zokusebenza zemali ephezulu.

3. Usekelo lokhiye lwangaphandle: I-InnoDB isekela okhiye bangaphandle, abangafinyelela ubuqotho obuyinkomba bedatha.

Indlela yokuguqula i-MyISAM ibe yi-InnoDB

Singasebenzisa isitatimende esisodwa se-SQL ukuze sikhiqize izitatimende zokuguqulwa zawo wonke amathebula bese sizenza zonke ngesikhathi esisodwa.

Lokhu kuzwakala kuyinkimbinkimbi, kodwa empeleni kulula kakhulu. Izinyathelo ezimbalwa nje.

Isinyathelo 1: Khetha isizindalwazi

Okokuqala, qiniseka ukuthi ukhethe isizindalwazi ofuna ukusebenza kuso. Imiyalo elandelayo ingasetshenziswa:

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

Isinyathelo sesi-2: Khiqiza izitatimende zokuguqulwa

Okulandelayo, sidinga ukukhiqiza izitatimende ze-SQL eziguqula wonke amatafula e-MyISAM abe amathebula e-InnoDB.

Lokhu kungenziwa ngokubuza information_schema.tables ithebula lokufeza.

Qalisa isitatimende esilandelayo se-SQL:

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

Lesi sitatimende sikhiqiza isethi yezitatimende ze-ALTER TABLE ezishintsha injini yokugcina yethebula le-MyISAM ngalinye libe yi-InnoDB.

Isinyathelo sesi-3: Yenza isitatimende sokuguqulwa

Kopisha imiphumela eyenziwe esinyathelweni sangaphambilini bese udlulaAIIngasisiza ukuthi sihlunge kalula imingcele.

KWI-ChatGPTFaka okulandelayo:

请帮我过滤以下边框:

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

Khona-ke, lapho igijima ku-MySQL, i-MySQL izosebenzisa lezi zitatimende ze-ALTER TABLE ngokulandelana ukuze iguqule wonke amatafula e-MyISAM abe amathebula e-InnoDB.

Isibonelo

Cabanga ukuthi isizindalwazi ofuna ukusisebenzisa sinegama example_db, yenza lezi zinyathelo ezilandelayo:

  1. Khetha isizindalwazi:
USE example_db;
  1. Khiqiza isitatimende sokuguqulwa:
SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=InnoDB;') 
FROM information_schema.tables 
WHERE table_schema="example_db" AND ENGINE="MyISAM";
  1. Kopisha isitatimende esikhiqiziwe bese usenza ku-MySQL:
ALTER TABLE table1 ENGINE=InnoDB;
ALTER TABLE table2 ENGINE=InnoDB;

Ukuqapha

Ngaphambi kokwenza lo msebenzi wokuguqula inqwaba, kunamaphuzu ambalwa okufanele uwaqaphele:

1. Isipele sedatha: Ngaphambi kokwenza ukuguqulwa kwenqwaba, qiniseka ukuthi uthatha ikhophi yasenqolobaneni ephelele yedathabheyisi ukuze uvimbele ukulahleka kwedatha.

2. Indawo yokuhlola: Kungumqondo omuhle ukuhlola endaweni yokuhlola kuqala ukuze uqiniseke ukuthi inqubo yokuguqula ngeke ithinte ukusebenza okuvamile kwesicelo sakho.

3. Izimvume zesizindalwazi: Qiniseka ukuthi unamalungelo anele esizindalwazi sokwenza imisebenzi ye-ALTER TABLE.

Ekuphetheni

Ngezinyathelo ezingenhla, singakwazi ukuguqula kalula wonke amatafula e-MyISAM kusizindalwazi se-MySQL abe amathebula e-InnoDB. Ukwenza kanjalo akukwazi nje ukuthuthukisa amandla okucubungula ngesikhathi esisodwa kusizindalwazi, kodwa futhi kuthuthukise ukuvikeleka nobuqotho bedatha.

Ngithemba ukuthi lesi sihloko singakusiza ukuthi uqonde kangcono futhi usebenzise i-database ye-MySQL. Uma unemibuzo noma iziphakamiso, sicela ushiye umlayezo endaweni yokuphawula.

Konke lokho kumayelana nokuguqulwa kwenqwaba ye-MyISAM ku-InnoDB. Manje ungakuzama!

🔧💡Ufuna ukwazi ukuthi usetshenziswa kanjaniphpMyAdminGuqula uhlobo lwethebula ledatha ye-InnoDB libe injini ezenzakalelayo ye-MyISAM? Lesi sihloko sikunikeza ngezinyathelo ezinemininingwane neziqondiso zokwenza ukuguqulwa kube lula!

👇Kunconyiwe ukuqhubeka nokufunda👇

Chofoza isixhumanisi ukuze ufunde okwengeziwe amakhono okuguqula isizindalwazi futhi wandise ukuphathwa kwesizindalwazi sakho! 📚💻

发表 评论

Ikheli lakho le-imeyili ngeke lishicilelwe. 必填 项 已 用 * Ilebula

Skrolela Top