Mokhoa oa ho hlophisa li-database tsa MySQL/MariaDB ho fetolela litafole tsa InnoDB ho litafole tsa MyISAM joang?

Enjene ea polokelo ea tafole ea database e tšoana le enjene ea koloi; ho fetola enjene ho fetola ts'ebetso le litšobotsi hang-hang. Batho ba bangata ba nahana hore database ke feela bakeng sa ho boloka data, empa ha u qala ho sebetsa ho eona... InnoDB 转成 MOTSOALLEKe ka nako eo feela u tla sibolla liphiri tse patiloeng ka morao ho eona.

Ke hobane'ng ha motho a ka batla ho fetoha ho tloha ho InnoDB ho ea ho MyISAM?

Maemong a mangata, MyISAM e potlakile, haholo-holo bakeng sa lits'ebetso tse baloang haholo le tse bobebe tse kang li-database tsa log le lipalo-palo.

Mokhoa oa eona oa ho notlela oa boemo ba tafole o sebetsa hantle haholo tlas'a chelete e tlase.

Ho feta moo, polokelo ea lifaele ea MyISAM e bonolo haholoanyane; e 'ngoe .MYD Lintlha tsa polokelo, e 'ngoe .MYI Ho boloka li-index, ho falla le ho boloka li-backup kaofela ho bonolo haholo.

Leha ho le jwalo, kgwebisano ya InnoDB le tshehetso ya senotlolo sa kantle ho naha ke ntho e hlokahalang maemong a rarahaneng a kgwebo.

Ka hona, o tlameha ho fumana hore na kgwebo ya hao e hlile e hloka dikarolo tsena pele o etsa phetoho.

Taelo ea mantlha: FETOLA TABLE

Ho fetolela tafole e le 'ngoe ho tloha ho InnoDB ho ea ho MyISAM, u hloka mola o le mong feela oa khoutu:

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

Kamora hore ts'ebetso e phethe, enjene ea polokelo ea tafole e tla buloa.

Na seo ha se otlolohe?

Phetoho ea sehlopha: Tlhahiso ea sengoloa ka boiketsetso

Haeba o na le litafole tse mashome kapa esita le tse makholo, ho li fetola ka letsoho ho hang ha ho sebetse.

Nakong ena, potso e le 'ngoe e ka sebelisoa ho hlahisa lipolelo tsa phetoho ea sehlopha ka bohona:

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

Kamora ho sebetsa, e tla hlahisa bongata ba ... ALTER TABLE ... Polelo.

Kopitsa lipolelo tsena 'me u li phethe kaofela ka nako e le 'ngoe ho phethela phetoho ea sehlopha ka nako e le 'ngoe.

Sena ke seo se tsejoang e le "phetoho ea sehlopha se iketsahalletseng".

Tlhahlobo ea kotsi pele ho phetoho

Mokhoa oa ho hlophisa li-database tsa MySQL/MariaDB ho fetolela litafole tsa InnoDB ho litafole tsa MyISAM joang?

Lithibelo tsa bohlokoa tsa kantle ho naha

InnoDB e tšehetsa linotlolo tsa kantle ho naha, ha MyISAM e sa li tšehetse ho hang.

Hang ha e se e fetotsoe, lithibelo tsa linotlolo tsa kantle ho naha li tla lahloa ka ho toba.

Haeba kgwebo ya hao e itshetlehile ka ho hlakola kapa ho ntlafatsa diphetoho tse nyane, mohopolo o tla hloleha ka ho feletseng kamora phetoho.

Tšehetso ea transaction

InnoDB e na le ditransekshene mme e a di tshehetsa. COMMIT le ROLLBACK.

MyISAM ha e na ditransekshene, e na le dinotlolo tse maemong a tafole feela.

Kamora phetoho, khoutu eohle e amanang le transaction e tla fetoha e sa sebetseng, 'me ho khutlisetsoa morao ho ke ke ha khoneha haeba ho ka ba le mokhelo.

Tshebetso ya tjhelete e tsamaellanang

InnoDB e sebelisa ho notlela ka maemo a mola, ha MyISAM e sebelisa ho notlela ka maemo a tafole.

Maemong a theko e phahameng, MyISAM e atisa ho notlela litafole, e leng se lebisang ho mathata a tshebetso.

Likarolo tsa Index

Ho MySQL Pele ho mofuta wa 5.6, MyISAM e ne e na le index ya yona e feletseng ya mongolo.

Empa MySQL Ho etsa index ka mongolo o felletseng ho se ho tshehetswa mefuteng ya 5.6 le 10+ ya MariaDB le InnoDB.

Ka hona, ntle le haeba o sebedisa mofuta wa kgale, ha ho hlokahale hore o fetohele ho MyISAM bakeng sa ho etsa index ya mongolo o felletseng.

Mokhoa o Molemohali oa ho Itlhakisa

  1. Lintlha tsa bekapo Pele o fetolela, etsa bonnete ba hore o romela kantle ho naha. .sql Lifaele li bolokoa ho netefatsa hore li ka tsosolosoa neng kapa neng.

  2. Sebopeho sa Lenane la Litlhahlobo Sebelisa taelo e latelang ho hlahloba hore na senotlolo sa kantle ho naha se teng:

    SHOW CREATE TABLE `你的表名`;
    
  3. Phetoho sebedisa ALTER TABLE Ka tsela e 'ngoe, lingoloa tsa sehlopha li ka sebelisoa ho phethela phetoho.

  4. Hlahloba boemo ba bophelo bo botle Kamora hore phetoho e phethe, matha:

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

    Sena se tiisa hore tafole e sebetsa hantle mme e lokolla dikotwana.

Mokhoa oa ho khutlisa morao

Haeba ho senyeha ha tshebetso kapa mathata a logic a kgwebo a bonwa kamora phetoho, o ka kgutlela ho InnoDB neng kapa neng:

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

Sena ke seo ho thoeng ke "ts'ebetso e ka khutlisetsoang morao," e u fang tsela ea ho tsoa.

Maikutlo a bolaoli a qotsitsoeng

Ho latela Litokomane tsa Semmuso tsa MySQL Tlhaloso:

"Constr ea senotlolo sa kantle ho naha"aints e tšehetsoa feela ke InnoDB. Haeba u fetolela tafole ho MyISAM, linotlolo tsohle tse tsoang linaheng tse ling li tla hlokomolohuoa.
——Buka ea Litšupiso ea MySQL, Khaolo ea 14.6.6 Lithibelo tsa Bohlokoa ba Kantle ho Naha

Polelo ena e re bolella ka ho hlaka hore linotlolo tsa kantle ho naha ha li sebetse ka ho feletseng ho MyISAM.

le Litokomane tsa Semmuso tsa MariaDB Ho ile ha boela ha totobatsoa hore:

"MyISAM ha e tšehetse litšebelisano. Likopo tse itšetlehileng ka botšepehi ba litšebelisano ha lia lokela ho sebelisa MyISAM."
——Setsi sa Tsebo sa MariaDB, Lienjine tsa Polokelo

Ke ka lebaka leo o lokelang ho nahana habeli pele o etsa phetoho.

Maikutlo a ka le Qeto

Ho fetolela InnoDB ho MyISAM ho tšoana le ho nkela enjene ea koloi ea mabothobotho sebaka ka enjene ea teraka.

E ka matha, empa e matha ka tsela e fapaneng ka ho feletseng.

Haeba kgwebo ya hao e kenyeletsa dipotso tse bobebe tsa dipalopalo, lebelo le bonolo ba MyISAM di ka ba molemo haholo.

Leha ho le jwalo, haeba sistimi ya hao e itshetlehile ka ditransekshene le dinotlolo tsa kantle ho naha, ho di fetola ka lepotlapotla ho tshwana le ho tlosa mokotlana wa moya.

Ka hona, bohlale ba 'nete ha bo ho lelekiseng lebelo ka bofofu, empa bo ho lekanyetseng botsitso le ts'ebetso.

Khetho ea database e etsa qeto ea moea oa sistimi.

Ho tseba bokgoni ba ho fetola dienjene tsa polokelo ha se feela pontsho ya bokgoni ba botekgeniki, empa hape ke ho phahamisa monahano wa meralo.

Haeba o nahana ka phetoho e kholo, ka kopo etsa tlhahlobo e felletseng ea kotsi pele.

Matha tikoloho ea teko hang ho etsisa maemo a khoebo ea 'nete.

Kamora ho netefatsa hore ntho e 'ngoe le e 'ngoe e nepahetse, e phethe tikolohong ea tlhahiso.

Li-database ha se lintho tsa ho bapala; ke pelo ea data ea khoebo.

'Me ke uena ea laolang morethetho oa pelo ea hau.

Comments

Aterese ea hau ea lengolo-tsoibila e ke ke ea phatlalatsoa. Ho sebelisoa masimo a hlokahalang * Letšoao

Sengoli sa Lingoloa
Scroll ho Top