Yadda ake saita bayanan MySQL/MariaDB don canza teburin InnoDB zuwa teburin MyISAM?

Injin ajiya na teburin bayanai kamar injin mota ne; canza injin nan take yana canza aiki da halaye. Mutane da yawa suna tunanin cewa rumbun adana bayanai kawai don adana bayanai ne, amma idan ka fara aiki a kai... InnoDB 转成 MISALISai a lokacin ne za ka gano sirrin da ke bayansa.

Me yasa wani zai so ya canza daga InnoDB zuwa MyISAM?

A cikin yanayi da yawa, MyISAM yana da sauri, musamman ga aikace-aikacen da ke ɗauke da rubutu da rubutu kamar bayanan log da kididdiga.

Tsarin kullewa na matakin tebur yana aiki cikin sauƙi ba tare da wata matsala ba.

Bugu da ƙari, ajiyar fayilolin MyISAM ya fi sauƙi; ɗaya .MYD Ajiye bayanai, ɗaya .MYI Ajiye fihirisa, ƙaura, da kuma adana bayanai duk suna da matuƙar dacewa.

Duk da haka, ma'amalar InnoDB da tallafin maɓallan ƙasashen waje kusan abu ne mai mahimmanci a cikin yanayi mai rikitarwa na kasuwanci.

Saboda haka, dole ne ka gano ko kasuwancinka yana buƙatar waɗannan fasalulluka kafin ka yi sauyi.

Babban umarni: SAUYA TABLE

Domin canza teburi ɗaya daga InnoDB zuwa MyISAM, layin lamba ɗaya kawai kake buƙatar:

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

Bayan an kammala aikin, za a canza injin ajiyar tebur.

Shin hakan ba abu ne mai sauƙi ba?

Canza rukuni: Samar da rubutun atomatik

Idan kana da tebura da dama ko ma ɗaruruwan, gyara su da hannu ba shakka ba abu ne mai amfani ba.

A wannan lokacin, ana iya amfani da tambaya guda ɗaya don samar da maganganun juyawar rukuni ta atomatik:

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

Bayan an gama, zai fitar da wani babban... ALTER TABLE ... Sanarwa.

Kwafi waɗannan maganganun kuma aiwatar da su duka a lokaci guda don kammala juyawar rukuni a lokaci guda.

Wannan shine abin da aka sani da "canzawa ta atomatik ta hanyar batch".

Kimanta haɗari kafin canzawa

Yadda ake saita bayanan MySQL/MariaDB don canza teburin InnoDB zuwa teburin MyISAM?

Maɓallan ƙasashen waje na ƙuntatawa

InnoDB yana goyan bayan maɓallan ƙasashen waje, yayin da MyISAM ba ya goyan bayan su kwata-kwata.

Da zarar an canza shi, za a yi watsi da ƙa'idodin maɓallan ƙasashen waje kai tsaye.

Idan kasuwancinku ya dogara ne akan gogewa ko sabuntawa, dabarun ba za su yi nasara ba bayan an canza su.

Tallafin ma'amala

InnoDB yana da ma'amaloli kuma yana tallafa musu. COMMIT kuma ROLLBACK.

MyISAM ba ta da ma'amaloli, sai dai makullan matakin tebur.

Bayan an canza, duk lambar da ta shafi ma'amala za ta zama mara inganci, kuma komawa baya ba zai yiwu ba idan aka yi keɓancewa.

Aikin daidaito

InnoDB yana amfani da kulle matakin layi, yayin da MyISAM ke amfani da kulle matakin tebur.

A cikin yanayi masu yawan jituwa, MyISAM yakan kulle tebura, wanda ke haifar da cikas ga aiki.

Fasali na fihirisa

A MySQL Kafin sigar 5.6, MyISAM tana da nata cikakken ma'aunin rubutu.

Amma a MySQL An riga an tallafa wa cikakken bayanin rubutu a cikin nau'ikan MariaDB da InnoDB na 5.6 da 10+.

Saboda haka, sai dai idan kuna amfani da tsohon sigar, babu buƙatar canzawa zuwa MyISAM don yin cikakken bayanin rubutu.

Mafi kyawun Tsarin Aiki

  1. Bayanan ajiya Kafin a canza, a tabbatar an fitar da shi. .sql Ana adana fayiloli don tabbatar da cewa ana iya dawo da su a kowane lokaci.

  2. Tsarin Jerin Abubuwan da Aka Yi Yi amfani da umarnin da ke ƙasa don duba idan akwai maɓallin waje:

    SHOW CREATE TABLE `你的表名`;
    
  3. Yi juyi amfani ALTER TABLE A madadin haka, ana iya amfani da rubutun rukuni don kammala fassarar.

  4. Duba yanayin lafiya Bayan an gama yin wannan canjin, gudanar da:

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

    Wannan yana tabbatar da cewa teburin yana aiki daidai kuma yana fitar da gutsuttsura.

Hanyar dawo da baya

Idan aka lura da raguwar aiki ko matsalolin dabarun kasuwanci bayan an canza, zaku iya komawa zuwa InnoDB a kowane lokaci:

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

Wannan shine abin da ake kira "aikin juyawa," wanda ke ba ku hanya mafi kyau don fita.

An ambaci ra'ayoyi masu iko

A cewar Takardun MySQL na hukuma Bayani:

"Ƙirƙirar maɓallan ƙasashen waje"aiInnoDB ne kawai ke tallafawa nts. Idan ka canza teburi zuwa MyISAM, za a yi watsi da duk maɓallan waje.
——Littafin Nazari na MySQL, Babi na 14.6.6 Maɓallan Ƙasashen Waje

Wannan bayani ya nuna mana a fili cewa maɓallan ƙasashen waje ba su da inganci kwata-kwata a cikin MyISAM.

da Takardun Hukuma na MariaDB An kuma jaddada cewa:

"MyISAM ba ta goyon bayan mu'amala. Bai kamata aikace-aikacen da suka dogara da amincin mu'amala su yi amfani da MyISAM ba."
——Tushen Ilimi na MariaDB, Injin Ajiyewa

Shi ya sa dole ne ka yi tunani sau biyu kafin ka yi canji.

Ra'ayina da Kammalawa

Canza InnoDB zuwa MyISAM kamar maye gurbin injin motar alfarma ne da injin babbar mota.

Yana iya gudana, amma yana gudana ta wata hanya daban.

Idan kasuwancinku ya ƙunshi tambayoyi masu sauƙi na ƙididdiga, saurin MyISAM da sauƙinsa na iya zama mafi dacewa.

Duk da haka, idan tsarinka ya dogara ne akan ma'amaloli da maɓallan ƙasashen waje, canza su cikin gaggawa kamar cire jakar iska ne.

Saboda haka, hikima ta gaskiya ba ta ta'allaka ne da neman gudu ba, sai dai ta hanyar daidaita daidaito da aiki.

Zaɓin bayanai yana ƙayyade ruhin tsarin.

Kwarewar ƙwarewar sauya injunan ajiya ba wai kawai nuna ƙwarewar fasaha ba ne, har ma da haɓaka tunanin gine-gine.

Idan kuna la'akari da canza yawan jama'a, da fatan za a fara yin cikakken kimanta haɗari.

Gudanar da yanayin gwaji sau ɗaya don kwaikwayon yanayin kasuwanci na gaske.

Bayan tabbatar da cewa komai daidai ne, aiwatar da umarnin a cikin yanayin samarwa.

Bayanan bayanai ba kayan wasa ba ne; su ne zuciyar bayanan kasuwanci.

Kuma kai ne wanda ke sarrafa yanayin zuciyarka.

comments

Ba za a buga adireshin imel ɗin ku ba. Ana amfani da filayen da ake buƙata * Alamar

Littafin Adireshi
Gungura zuwa top