Directory artaigil
San artaigil seo, rannsaichidh sinn na cleachdaidhean as fheàrr airson tionndadh mòr-chuid de einnseanan stòraidh MyISAM gu InnoDB ann an stòran-dàta MySQL .
Bheir sinn stiùireadh dhut ceum air cheum tron phròiseas tionndaidh agus bheir sinn seachad molaidhean agus cleasan cuideachail gus dèanamh cinnteach gu bheil e air a dhèanamh gu h-èifeachdach agus gu sàbhailte.
Ge bith co-dhiù a tha thu nad rianadair stòr-dàta no nad leasaiche, cuidichidh an iùl seo thu gus na h-eadar-dhealachaidhean eadar MyISAM agus InnoDB a thuigsinn, agus carson a tha tionndadh gu InnoDB deatamach airson coileanadh as fheàrr agus earbsachd dàta a leasachadh.
Le bhith a’ leantainn ar ceumannan mionaideach, bidh e comasach dhut an stòr-dàta MySQL agad a thionndadh gu einnsean stòraidh InnoDB gu furasta, agus mar sin a’ leasachadh coileanadh agus a’ dèanamh cinnteach à tèarainteachd agus ionracas dàta.

Ann an siostam stòr-dàta MySQL, tha MyISAM agus InnoDB nan dà einnsean stòraidh cumanta. Tha MyISAM luath agus freagarrach airson suidheachaidhean le mòran obrachaidhean leughaidh.
Bidh InnoDB a’ toirt taic do ghnothaichean, iuchraichean cèin, agus glasadh ìre sreath, agus tha e nas freagarraiche airson tagraidhean a dh’ fheumas ionracas dàta agus smachd concurrency. Mar sin, dè a bu chòir dhuinn a dhèanamh nuair a dh’ fheumas sinn clàran MyISAM a thionndadh gu InnoDB?
Carson a thionndaidheas MyISAM gu InnoDB?
An toiseach, bruidhnidh sinn carson a tha sinn a’ dèanamh an tionndadh seo.
Ged a tha coileanadh math aig MyISAM, tha easbhaidhean aige ann an tèarainteachd dàta agus giullachd co-aontach.
Bidh InnoDB a’ toirt seachad taic malairt, a dh’ fhaodas dèanamh cinnteach à cunbhalachd dàta agus a bhith a’ làimhseachadh shuidheachaidhean concurrency àrd.
1. Ionracas Dàta: Tha InnoDB a’ toirt taic do ghnothaichean, a leigeas le obrachaidhean rollback agus a nì cinnteach à cunbhalachd dàta.
2. Smachd co-aimsireil: Bidh InnoDB a’ cleachdadh glasadh aig ìre sreath, a tha freagarrach airson tagraidhean àrd-cho-aimsireil.
3. Taic Iuchrach Cèin: Tha InnoDB a’ toirt taic do iuchraichean cèin, a dh’ fhaodas dèanamh cinnteach à ionracas iomraidh dàta.
Dòigh airson baidse atharrachadh MyISAM gu InnoDB
Is urrainn dhuinn aon aithris SQL a chleachdadh gus aithrisean tionndaidh a ghineadh airson a h-uile clàr agus an uairsin an cur an gnìomh aig an aon àm.
Tha seo a 'fuaimeachadh iom-fhillte, ach gu dearbh tha e gu math sìmplidh. Dìreach beagan cheumannan.
Ceum 1: Tagh stòr-dàta
An toiseach, dèan cinnteach gu bheil thu air an stòr-dàta a tha thu airson obrachadh air a thaghadh. Faodar na h-òrdughan a leanas a chleachdadh:
mysql
USE 你要操作的数据库名;
Ceum 2: Cruthaich aithrisean tionndaidh
An ath rud, feumaidh sinn na h-aithrisean SQL a ghineadh a thionndaidheas a h-uile clàr MyISAM gu bùird InnoDB.
Faodar seo a dhèanamh le bhith a’ faighneachd information_schema.tables bòrd ri choileanadh.
Ruith an aithris SQL a leanas:
SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=InnoDB;')
FROM information_schema.tables
WHERE table_schema="你要操作的数据库名" AND ENGINE="MyISAM";Tha an aithris seo a’ gineadh seata de aithrisean ALTER TABLE a dh’ atharraicheas einnsean stòraidh gach clàr MyISAM gu InnoDB.
Ceum 3: Cuir an gnìomh an aithris tionndaidh
Dèan lethbhreac den toradh a chaidh a chruthachadh sa cheum roimhe, agus faodaidh AI ar cuideachadh le bhith a’ sìoladh a-mach na crìochan gu furasta.
Cuir a-steach an leanas ann an ChatGPT :
请帮我过滤以下边框:
+--------------------------------------------------------------+
| ALTER TABLE table1 ENGINE=InnoDB; |
| ALTER TABLE table2 ENGINE=InnoDB; |
| ALTER TABLE table3 ENGINE=InnoDB; |
+--------------------------------------------------------------+
An uairsin, nuair a thèid a ruith ann am MySQL, cuiridh MySQL na h-aithrisean ALTER TABLE seo an gnìomh ann an òrdugh gus a h-uile clàr MyISAM a thionndadh gu bùird InnoDB.
Eisimpleir
Gabh ris gu bheil an stòr-dàta a tha thu airson obrachadh air ainmeachadh example_db, dèan na ceumannan a leanas:
- Tagh stòr-dàta:
USE example_db;
- Cruthaich aithris tionndaidh:
SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=InnoDB;')
FROM information_schema.tables
WHERE table_schema="example_db" AND ENGINE="MyISAM";- Dèan lethbhreac den aithris a chaidh a chruthachadh agus cuir an gnìomh e ann am MySQL:
ALTER TABLE table1 ENGINE=InnoDB;
ALTER TABLE table2 ENGINE=InnoDB;
Ro-chùram
Mus dèan thu an obair tionndaidh baidse seo, tha beagan phuingean ri thoirt fa-near:
1. Cùl-taic Dàta: Mus dèan thu tionndadh baidse, dèan cinnteach gu bheil cùl-taic iomlan den stòr-dàta air a dhèanamh gus casg a chuir air call dàta.
2. Àrainneachd deuchainn: ’S fheàrr deuchainn a dhèanamh ann an àrainneachd deuchainn an toiseach gus dèanamh cinnteach nach toir am pròiseas tionndaidh buaidh air obrachadh àbhaisteach an tagraidh.
3. Ceadan stòr-dàta: Dèan cinnteach gu bheil ceadan stòr-dàta gu leòr agad gus an obrachadh ALTER TABLE a dhèanamh.
ann an co-dhùnadh
Leis na ceumannan gu h-àrd, is urrainn dhuinn gu furasta na clàran MyISAM gu lèir ann an stòr-dàta MySQL a thionndadh gu bùird InnoDB. Le bhith a’ dèanamh seo chan urrainn a-mhàin leasachadh a dhèanamh air comasan giullachd an stòr-dàta, ach cuideachd tèarainteachd agus ionracas an dàta àrdachadh.
Tha mi an dòchas gun cuidich an artaigil seo thu gus stòr-dàta MySQL a thuigsinn agus obrachadh nas fheàrr. Ma tha ceist no moladh sam bith agad, fàg teachdaireachd anns an raon bheachdan.
Tha sin uile mu dheidhinn tionndadh baidse MyISAM gu InnoDB. A-nis faodaidh tu feuchainn air!
🔧💡 A bheil thu airson faighinn a-mach mar a nì thu tionndadh bho chlàr InnoDB chun einnsean bunaiteach MyISAM le bhith a’ cleachdadh phpMyAdmin ? Tha an t-artaigil seo a’ toirt seachad ceumannan agus stiùireadh mionaideach gus do chuideachadh le bhith a’ crìochnachadh an tionndaidh gu furasta!
👇 Air a mholadh gun lean thu a’ leughadh👇
Cliog air a’ cheangal gus barrachd sgilean tionndaidh stòr-dàta ionnsachadh agus an riaghladh stòr-dàta agad a bharrachadh! 📚💻
Tha mi an dòchas gum bi an t-artaigil “How to Batch Convert MyISAM to InnoDB Storage Engine in MySQL Databases?” a chaidh a cho-roinn air blog Chen Weiliang ( https://www.chenweiliang.com/ ) feumail dhut.
Faodaidh sibh ceangal an artaigil seo a cho-roinn: https://www.chenweiliang.com/cwl-31790.html

