Nola konfiguratu MySQL/MariaDB datu-baseak InnoDB taulak MyISAM tauletara bihurtzeko multzoka?

Datu-base taula baten biltegiratze motorra auto baten motorra bezalakoa da; motorra aldatzeak berehala aldatzen ditu errendimendua eta ezaugarriak. Jende askok uste du datu-base bat datuak gordetzeko bakarrik dela, baina benetan lanean hasten zarenean... InnoDB 转成 NireISAMOrduan bakarrik aurkituko dituzu atzean dauden sekretu ezkutuak.

Zergatik nahi izango luke norbaitek InnoDBtik MyISAMera aldatu?

Egoera askotan, MyISAM azkarragoa da, batez ere irakurketa eta idazketa arin behar duten aplikazioetarako, hala nola erregistro eta estatistika datu-baseetarako.

Bere taula-mailako blokeatze-mekanismoa oso leunki funtzionatzen du konkurrentzia txikian.

Gainera, MyISAM-en fitxategien biltegiratzea intuitiboagoa da; bat .MYD Gorde datuak, bat .MYI Indizeak gordetzea, migratzea eta babeskopiak egitea oso erosoak dira.

Hala ere, InnoDBren transakzio eta kanpoko gakoen euskarria ia ezinbestekoa da negozio-eszenatoki konplexuetan.

Beraz, zure negozioak ezaugarri horiek benetan behar dituen ala ez jakin behar duzu trantsizioa egin aurretik.

Komando nagusia: ALTER TABLE

InnoDB-tik MyISAM-era taula bakarra bihurtzeko, kode lerro bakarra besterik ez duzu behar:

ALTER TABLE `你的表名` ENGINE = MyISAM;

Exekuzioa amaitutakoan, taularen biltegiratze-motorra aldatuko da.

Ez al da hori erraza?

Multzo-bihurketa: Script-en sorrera automatikoa

Dozenaka edo ehunka taula badituzu, eskuz aldatzea ez da batere praktikoa.

Puntu honetan, kontsulta bakarra erabil daiteke automatikoki sorta-bihurketa adierazpenak sortzeko:

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

Exekutatu ondoren, hainbat emaitza emango ditu... ALTER TABLE ... Adierazpena.

Kopiatu adierazpen hauek eta exekutatu itzazu guztiak batera bihurketa multzoka aldi berean osatzeko.

Hau "batz-bihurketa automatizatua" bezala ezagutzen da.

Bihurketa aurreko arriskuen ebaluazioa

Nola konfiguratu MySQL/MariaDB datu-baseak InnoDB taulak MyISAM tauletara bihurtzeko multzoka?

Atzerriko gakoen mugak

InnoDB-k kanpoko gakoak onartzen ditu, MyISAM-ek, berriz, ez ditu batere onartzen.

Behin bihurtuta, kanpoko gakoen murrizketak zuzenean baztertuko dira.

Zure negozioak ezabatze edo eguneratze segidan oinarritzen bada, logikak erabat huts egingo du bihurketaren ondoren.

Transakzioen laguntza

InnoDB-k transakzioak ditu eta horiek onartzen ditu. COMMITROLLBACK.

MyISAMek ez ditu transakziorik, taula mailako blokeoak bakarrik.

Bihurketaren ondoren, transakzioekin lotutako kode guztia baliogabetuko da, eta salbuespenen bat izanez gero, atzera egitea ezinezkoa izango da.

Aldiberekotasun-errendimendua

InnoDB-k errenkada mailako blokeoa erabiltzen du, eta MyISAM-ek, berriz, taula mailako blokeoa.

Konkurrentzia handiko egoeretan, MyISAMek maiz blokeatzen ditu taulak, eta horrek errendimendu-oztopoak sortzen ditu.

Indizearen ezaugarriak

MySQL 5.6 bertsioa baino lehen, MyISAMek bere testu osoko indizea zuen.

Baina MySQL Testu osoko indexazioa MariaDB eta InnoDBren 5.6 eta 10+ bertsioetan onartzen da dagoeneko.

Beraz, bertsio zaharrago bat erabiltzen ez baduzu behintzat, ez dago MyISAM-era aldatu beharrik testu osoko indexaziorako.

Praktika Onenen Prozesua

  1. Babeskopia datuak Bihurtu aurretik, ziurtatu esportatzen duzula. .sql Fitxategiak gordetzen dira edozein unetan leheneratu ahal izateko.

  2. Kontrol-zerrendaren egitura Erabili komando hau kanpoko gako bat existitzen den egiaztatzeko:

    SHOW CREATE TABLE `你的表名`;
    
  3. Bihurketa egin 使用 ALTER TABLE Bestela, batch script-ak erabil daitezke bihurketa osatzeko.

  4. Osasun egoera egiaztatu Bihurketa amaitutakoan, exekutatu:

    CHECK TABLE `你的表名`;
    OPTIMIZE TABLE `你的表名`;
    

    Honek baieztatzen du taula behar bezala funtzionatzen ari dela eta zatiak askatzen dituela.

Alderantzizko berreskuratze metodoa

Bihurketaren ondoren errendimenduaren beherakada edo negozio-logikaren arazoak ikusten badira, edozein unetan itzul zaitezke InnoDBra:

ALTER TABLE `你的表名` ENGINE = InnoDB;

Honi "eragiketa alderantzikagarria" deitzen zaio, irteera bat ematen dizuna.

Aipatutako ikuspuntu autoritarioak

ren arabera MySQL Dokumentazio Ofiziala Azalpena:

"Atzerriko giltza eraikuntza"aints InnoDB-k bakarrik onartzen ditu. Taula bat MyISAM-era bihurtzen baduzu, kanpoko gako guztiak ez dira kontuan hartuko.
——MySQL Erreferentzia Eskuliburua, 14.6.6 Kapitulua Atzerriko Gakoen Murrizketak

Adierazpen honek argi eta garbi esaten digu kanpoko gakoak guztiz baliogabeak direla MyISAM-en.

eta MariaDBren dokumentazio ofiziala Honako hau ere azpimarratu zen:

"MyISAM-ek ez ditu transakzioak onartzen. Transakzioen osotasunean oinarritzen diren aplikazioek ez lukete MyISAM erabili behar."
——MariaDB Ezagutza Basea, Biltegiratze Motorrak

Horregatik, bi aldiz pentsatu behar duzu aldaketa egin aurretik.

Nire ikuspuntua eta ondorioa

InnoDB MyISAM bihurtzea luxuzko auto baten motorra kamioi baten motorrarekin ordezkatzea bezalakoa da.

Korrika egin dezake, baina modu guztiz desberdinean.

Zure negozioak estatistika-kontsulta arinak egiten baditu, MyISAM-en abiadura eta sinpletasuna egokiagoak izan daitezke.

Hala ere, zure sistemak transakzioetan eta kanpoko gakoetan oinarritzen bada, horiek arduragabeki bihurtzea airbag-a kentzea bezalakoa da.

Beraz, benetako jakinduria ez datza itsu-itsuan abiadura bilatzea, egonkortasuna eta errendimendua orekatzea baizik.

Datu-basearen aukeraketak sistemaren arima zehazten du.

Biltegiratze-motorrak aldatzeko trebetasunak menperatzea ez da gaitasun teknikoaren erakustaldia bakarrik, baita pentsamendu arkitektonikoaren igoera ere.

Bihurketa masiboa egitea pentsatzen ari bazara, lehenik arriskuen ebaluazio integrala egin.

Exekutatu proba-ingurunea behin negozio-eszenatoki errealak simulatzeko.

Dena zuzen dagoela baieztatu ondoren, komandoa ekoizpen ingurunean exekutatu.

Datu-baseak ez dira jostailuak; enpresako datuen bihotza dira.

Eta zu zara zure bihotzaren erritmoa kontrolatzen duena.

Hope Chen Weiliang bloga ( https://www.chenweiliang.com/ Baliteke hemen partekatutako "Nola bihurtu InnoDB taulak MyISAM tauletara MySQL/MariaDB datu-baseetan?" artikulua lagungarria izatea zuretzat.

Ongi etorri artikulu honen esteka partekatzera:https://www.chenweiliang.com/cwl-34157.html

Trikimailu ezkutu gehiago desblokeatzeko🔑, ongi etorri gure Telegram kanalera!

Partekatu eta gustatu gustatzen bazaizu! Zure partekatzeak eta gustukoak dira gure etengabeko motibazioa!

 

发表 评论

Zure helbide elektronikoa ez da argitaratuko. 必填 项 已 用 * 标注

Artikulu direktorioa
Igo korrituko