Kif nikkonfigura databases MySQL/MariaDB biex nikkonverti f'lott it-tabelli InnoDB għal tabelli MyISAM?

Il-magna tal-ħażna ta' tabella ta' database hija bħall-magna ta' karozza; il-bdil tal-magna jibdel immedjatament il-prestazzjoni u l-karatteristiċi. Ħafna nies jaħsbu li database hija biss għall-ħażna tad-dejta, imma meta fil-fatt tibda taħdem fuqha... InnoDB 转成 MyISAMImbagħad biss tiskopri s-sigrieti moħbija warajha.

Għaliex xi ħadd ikun irid jaqleb minn InnoDB għal MyISAM?

F'ħafna xenarji, MyISAM huwa aktar mgħaġġel, speċjalment għal applikazzjonijiet li jeħtieġu ħafna qari u ftit kitba bħal databases ta' logs u statistiċi.

Il-mekkaniżmu ta' qfil fil-livell tat-tabella tiegħu fil-fatt jaħdem bla xkiel ħafna taħt konkorrenza baxxa.

Barra minn hekk, il-ħażna tal-fajls ta' MyISAM hija aktar intuwittiva; waħda .MYD Aħżen id-dejta, waħda .MYI Il-ħażna tal-indiċijiet, il-migrazzjoni, u l-backup huma kollha konvenjenti ħafna.

Madankollu, l-appoġġ ta' InnoDB għat-tranżazzjonijiet u ċ-ċwievet barranin huwa kważi neċessità f'xenarji ta' negozju kumplessi.

Għalhekk, trid tara jekk in-negozju tiegħek fil-fatt jeħtieġx dawn il-karatteristiċi qabel ma tagħmel it-tranżizzjoni.

Kmand ewlieni: ALTER TABLE

Biex tikkonverti tabella waħda minn InnoDB għal MyISAM, għandek bżonn linja waħda biss ta' kodiċi:

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

Wara li titlesta l-eżekuzzjoni, il-magna tal-ħażna tat-tabella tinxtegħel.

Mhux sempliċi dan?

Konverżjoni tal-lott: Ġenerazzjoni awtomatika ta' skript

Jekk għandek għexieren jew saħansitra mijiet ta' tabelli, il-modifika tagħhom manwali żgur mhux prattiku.

F'dan il-punt, tista' tintuża mistoqsija waħda biex tiġġenera awtomatikament dikjarazzjonijiet ta' konverżjoni f'lottijiet:

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

Wara li jaħdem, se joħroġ mazz ta'... ALTER TABLE ... Dikjarazzjoni.

Ikkopja dawn id-dikjarazzjonijiet u esegwihom kollha f'daqqa biex tlesti l-konverżjoni tal-lott f'daqqa.

Dan huwa dak li hu magħruf bħala "konverżjoni awtomatizzata f'lottijiet".

Valutazzjoni tar-riskju qabel il-konverżjoni

Kif nikkonfigura databases MySQL/MariaDB biex nikkonverti f'lott it-tabelli InnoDB għal tabelli MyISAM?

Restrizzjonijiet taċ-ċwievet barranin

InnoDB jappoġġja ċwievet barranin, filwaqt li MyISAM ma jappoġġjahomx xejn.

Ladarba l-konverżjoni tkun kompluta, ir-restrizzjonijiet taċ-ċavetta barranija se jitwarrbu.

Jekk in-negozju tiegħek jiddependi fuq tħassir jew aġġornamenti kaskati, il-loġika se tfalli kompletament wara l-konverżjoni.

Appoġġ għat-tranżazzjonijiet

InnoDB għandu tranżazzjonijiet u jappoġġjahom. COMMITROLLBACK.

MyISAM m'għandux tranżazzjonijiet, serraturi fil-livell tat-tabella biss.

Wara l-konverżjoni, il-kodiċi kollu relatat mat-tranżazzjoni ma jibqax validu, u r-rollback ma jkunx possibbli f'każ ta' eċċezzjoni.

Prestazzjoni tal-konkorrenza

InnoDB juża locking fil-livell tar-ringiela, filwaqt li MyISAM juża locking fil-livell tat-tabella.

F'xenarji ta' konkorrenza għolja, MyISAM ta' spiss jissakkar it-tabelli, u dan iwassal għal konġestjonijiet fil-prestazzjoni.

Karatteristiċi tal-indiċi

MySQL Qabel il-verżjoni 5.6, MyISAM kellu l-indiċi sħiħ tiegħu stess.

Iżda fl MySQL L-indiċjar tat-test sħiħ diġà huwa appoġġjat fil-verżjonijiet 5.6 u 10+ ta' MariaDB u InnoDB.

Għalhekk, sakemm ma tkunx qed tuża verżjoni eqdem, m'hemmx bżonn li taqleb għal MyISAM għall-indiċjar tat-test sħiħ.

Proċess tal-Aħjar Prattika

  1. Dejta ta' backup Qabel ma tikkonverti, kun żgur li tesporta. .sql Il-fajls huma maħżuna biex jiġi żgurat li jistgħu jiġu restawrati fi kwalunkwe ħin.

  2. Struttura tal-Lista ta' Kontroll Uża l-kmand li ġej biex tivverifika jekk teżistix ċavetta barranija:

    SHOW CREATE TABLE `你的表名`;
    
  3. Agħmel konverżjoni 使用 ALTER TABLE Alternattivament, jistgħu jintużaw skripts tal-lott biex titlesta l-konverżjoni.

  4. Iċċekkja l-istat tas-saħħa Wara li titlesta l-konverżjoni, mexxi:

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

    Dan jikkonferma li t-tabella qed tiffunzjona sew u tirrilaxxa frammenti.

Metodu ta' rkupru invers

Jekk jiġu osservati degradazzjoni tal-prestazzjoni jew problemi fil-loġika tan-negozju wara l-konverżjoni, tista' terġa' lura għal InnoDB fi kwalunkwe ħin:

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

Dan huwa dak li jissejjaħ "operazzjoni riversibbli", li tagħtik triq 'il barra.

Perspettivi awtorevoli ċċitati

Skond Dokumentazzjoni Uffiċjali tal-MySQL Spjegazzjoni:

"Kostruzzjoni taċ-ċavetta barranija"aiL-ntijiet huma appoġġjati biss minn InnoDB. Jekk tikkonverti tabella għal MyISAM, iċ-ċwievet barranin kollha se jiġu injorati.
——Manwal ta' Referenza MySQL, Kapitlu 14.6.6 Restrizzjonijiet taċ-Ċavetta Barranija

Din id-dikjarazzjoni tgħidilna b'mod ċar li ċ-ċwievet barranin huma kompletament invalidi f'MyISAM.

u Dokumentazzjoni Uffiċjali ta' MariaDB Ġie enfasizzat ukoll li:

"MyISAM ma jappoġġjax tranżazzjonijiet. Applikazzjonijiet li jiddependu fuq l-integrità transazzjonali m'għandhomx jużaw MyISAM."
——Bażi tal-Għarfien MariaDB, Magni tal-Ħażna

Huwa għalhekk li trid taħseb darbtejn qabel ma tagħmel bidla.

Il-Punt ta' Vista u l-Konklużjoni Tiegħi

Il-konverżjoni ta' InnoDB għal MyISAM hija bħas-sostituzzjoni tal-magna ta' karozza lussuża b'magna ta' trakk.

Jista' jaħdem, iżda jaħdem b'mod kompletament differenti.

Jekk in-negozju tiegħek jinvolvi mistoqsijiet statistiċi ħfief, il-veloċità u s-sempliċità ta' MyISAM jistgħu jkunu aktar adattati.

Madankollu, jekk is-sistema tiegħek tiddependi fuq tranżazzjonijiet u ċwievet barranin, il-konverżjoni tagħhom bl-addoċċ hija bħal li tneħħi l-airbag.

Għalhekk, l-għerf veru ma jinsabx f’li nfittxu l-veloċità bl-addoċċ, iżda fil-bilanċ bejn l-istabbiltà u l-prestazzjoni.

L-għażla tad-database tiddetermina r-ruħ tas-sistema.

Il-ħakma tal-ħiliet tal-bdil tal-magni tal-ħażna mhix biss dimostrazzjoni tal-abbiltà teknika, iżda wkoll elevazzjoni tal-ħsieb arkitettoniku.

Jekk qed tikkunsidra konverżjoni bl-ingrossa, jekk jogħġbok wettaq valutazzjoni komprensiva tar-riskju l-ewwel.

Mexxi l-ambjent tat-test darba biex tissimula xenarji reali tan-negozju.

Wara li tikkonferma li kollox huwa korrett, eżegwixxih fl-ambjent tal-produzzjoni.

Id-databases mhumiex ġugarelli; huma l-qalba tad-dejta tal-intrapriża.

U int dak li tikkontrolla r-ritmu ta' qalbek.

发表 评论

您的邮箱地址不会被公开。 Jintużaw l-oqsma meħtieġa * Tikketta

Direttorju tal-Artikoli
Skrollja Top