Conas bunachair shonraí MySQL/MariaDB a chumrú chun táblaí InnoDB a thiontú go táblaí MyISAM i mbaisceanna?

Tá inneall stórála tábla bunachar sonraí cosúil le hinneall gluaisteáin; athraíonn athrú an innill an fheidhmíocht agus na tréithe láithreach. Ceapann go leor daoine nach bhfuil bunachar sonraí ann ach chun sonraí a stóráil, ach nuair a thosaíonn tú ag obair air i ndáiríre... InnoDB 转成 MiseAMAnsin amháin a gheobhaidh tú amach na rúin i bhfolach atá taobh thiar de.

Cén fáth a mbeadh duine ag iarraidh aistriú ó InnoDB go MyISAM?

I go leor cásanna, bíonn MyISAM níos tapúla, go háirithe i gcás feidhmchlár a bhfuil gá le léamh agus scríobh orthu go dona amhail bunachair shonraí loga agus staitisticí.

Ritheann a mheicníocht glasála ar leibhéal an tábla go han-réidh faoi chomhthráthacht íseal.

Ina theannta sin, tá stóráil comhad MyISAM níos iomasach; ceann amháin .MYD Sonraí stórála, ceann amháin .MYI Tá sé an-áisiúil innéacsanna a stóráil, aistriú agus cúltaca a dhéanamh.

Mar sin féin, is beagnach riachtanach tacaíocht InnoDB d'idirbhearta agus d'eochair eachtracha i gcásanna gnó casta.

Dá bhrí sin, ní mór duit a dhéanamh amach an bhfuil na gnéithe seo ag teastáil ó do ghnó i ndáiríre sula ndéanann tú an t-aistriú.

Príomhordú: ALTER TABLE

Chun tábla aonair a thiontú ó InnoDB go MyISAM, níl ach líne amháin cóid uait:

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

Tar éis an fhorghníomhú a bheith críochnaithe, aistreofar inneall stórála an tábla.

Nach bhfuil sin simplí go leor?

Comhshó baisce: Giniúint scripte uathoibríoch

Mura bhfuil mórán nó fiú na céadta táblaí agat, níl sé praiticiúil iad a mhodhnú de láimh ar chor ar bith.

Ag an bpointe seo, is féidir fiosrúchán aonair a úsáid chun ráitis chomhshó baisce a ghiniúint go huathoibríoch:

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

Tar éis rith, cuirfidh sé a lán... aschur... ALTER TABLE ... Ráiteas.

Cóipeáil na ráitis seo agus cuir i gcrích iad go léir ag an am céanna chun an comhshó baisce a chríochnú in aon iarracht amháin.

Seo an rud a thugtar "comhshó baisce uathoibrithe" air.

Measúnú riosca roimh an gcomhshó

Conas bunachair shonraí MySQL/MariaDB a chumrú chun táblaí InnoDB a thiontú go táblaí MyISAM i mbaisceanna?

Srianta eochracha eachtracha

Tacaíonn InnoDB le heochracha eachtracha, ach ní thacaíonn MyISAM leo ar chor ar bith.

Nuair a bheidh siad tiontaithe, cuirfear srianta eochracha eachtracha ar leataobh go díreach.

Má bhraitheann do ghnó ar scriosadh nó nuashonruithe easghluaiseacha, teipfidh ar an loighic go hiomlán tar éis an chomhshó.

Tacaíocht idirbhirt

Tá idirbhearta ag InnoDB agus tacaíonn sé leo. COMMITROLLBACK.

Níl idirbhearta ag MyISAM, ach glais ar leibhéal an tábla.

Tar éis an chomhshó, beidh gach cód a bhaineann leis an idirbheart neamhbhailí, agus ní bheidh sé indéanta rolladh ar ais i gcás eisceacht.

Feidhmíocht chomhthráthachta

Úsáideann InnoDB glasáil ar leibhéal na sraithe, agus úsáideann MyISAM glasáil ar leibhéal an tábla.

I gcásanna ard-chomhthráthachta, is minic a ghlasálann MyISAM táblaí, rud a fhágann go mbíonn bacainní feidhmíochta.

Gnéithe innéacs

MySQL Roimh leagan 5.6, bhí a innéacs téacs iomlán féin ag MyISAM.

Ach MySQL Tacaítear le hinnéacsú lántéacs cheana féin i leaganacha 5.6 agus 10+ de MariaDB agus InnoDB.

Dá bhrí sin, mura bhfuil leagan níos sine in úsáid agat, níl aon ghá le hathrú go MyISAM le haghaidh innéacsú téacs iomláin.

Próiseas Dea-Chleachtais

  1. Sonraí cúltaca Sula ndéantar comhshó, bí cinnte go ndéanfaidh tú onnmhairiú. .sql Stóráiltear comhaid lena chinntiú gur féidir iad a athchóiriú tráth ar bith.

  2. Struchtúr an tseicliosta Úsáid an t-ordú seo a leanas chun a sheiceáil an bhfuil eochair eachtrach ann:

    SHOW CREATE TABLE `你的表名`;
    
  3. Déan tiontú 使用 ALTER TABLE Nó is féidir scripteanna baisce a úsáid chun an tiontú a chríochnú.

  4. Seiceáil stádas sláinte Tar éis an tiontú a bheith críochnaithe, rith:

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

    Deimhníonn sé seo go bhfuil an tábla ag feidhmiú i gceart agus scaoileann sé blúirí.

Modh aisghabhála droim ar ais

Má fheictear meath ar fheidhmíocht nó fadhbanna loighic ghnó tar éis an chomhshó, is féidir leat aistriú ar ais go InnoDB am ar bith:

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

Seo an rud a thugtar "oibríocht inchúlaithe" air, rud a thugann bealach amach duit.

Dearcthaí údarásacha a luadh

de réir Doiciméadú Oifigiúil MySQL Míniú:

"Tógáil eochrach eachtrach"aiNí thacaíonn ach InnoDB le nts. Má athraíonn tú tábla go MyISAM, déanfar neamhaird ar aon eochair eachtrach.
——Lámhleabhar Tagartha MySQL, Caibidil 14.6.6 Srianta Eochracha Eachtracha

Insíonn an ráiteas seo dúinn go soiléir go bhfuil eochracha eachtracha go hiomlán neamhbhailí i MyISAM.

agus Doiciméadú Oifigiúil MariaDB Cuireadh béim air freisin:

"Ní thacaíonn MyISAM le hidirbhearta. Níor cheart d'fheidhmchláir atá ag brath ar shláine idirbheart MyISAM a úsáid."
——Bunachar Eolais MariaDB, Innill Stórála

Sin é an fáth go gcaithfidh tú smaoineamh faoi dhó sula ndéanann tú athrú.

Mo Thuairim agus mo Chonclúid

Is ionann InnoDB a thiontú go MyISAM agus inneall gluaisteáin só a athsholáthar le hinneall trucaile.

Is féidir leis rith, ach ritheann sé ar bhealach go hiomlán difriúil.

Más ceisteanna staitistiúla éadroma atá i gceist le do ghnó, d’fhéadfadh luas agus simplíocht MyISAM a bheith níos oiriúnaí.

Mar sin féin, má bhraitheann do chóras ar idirbhearta agus ar eochracha eachtracha, is ionann iad a thiontú go meargánta agus an mála a bhaint.

Dá bhrí sin, ní i luas a shaothrú go dall atá fíor-eagna, ach i gcobhsaíocht agus feidhmíocht a chothromú.

Is é rogha an bhunachair shonraí a chinneann anam an chórais.

Ní hamháin gur léiriú ar chumas teicniúil é máistreacht a fháil ar scileanna lasctha innill stórála, ach is ardú céime ar smaointeoireacht ailtireachta é freisin.

Más rud é go bhfuil tú ag smaoineamh ar chomhshó mórchóir, déan measúnú riosca cuimsitheach ar dtús.

Rith an timpeallacht tástála uair amháin chun cásanna gnó fíor a insamhladh.

Tar éis duit a dheimhniú go bhfuil gach rud ceart, cuir i gcrích é sa timpeallacht táirgthe.

Ní bréagáin iad bunachair shonraí; is iad croílár shonraí fiontraíochta.

Agus is tusa an té a rialaíonn rithim do chroí.

Tá súil agam Blag Chen Weiliang ( https://www.chenweiliang.com/ D’fhéadfadh an t-alt "Conas Táblaí InnoDB a Thiontú i mBaisc Sonraí MySQL/MariaDB?" atá roinnte anseo a bheith ina chuidiú duit.

Fáilte romhat nasc an ailt seo a roinnt:https://www.chenweiliang.com/cwl-34157.html

Chun níos mó cleasanna ceilte a dhíghlasáil🔑, fáilte romhat páirt a ghlacadh inár gcainéal Telegram!

Roinn agus maith más maith leat é! Is iad do chuid scaireanna agus rudaí is maith leat ár spreagadh leanúnach!

 

发表 评论

Ní fhoilseofar do sheoladh ríomhphoist. Úsáidtear réimsí riachtanacha * Lipéad

Eolaire Eolaire
Scrollaigh go dtí an Barr