Чӣ тавр маҷмӯи махзани MySQL-ро аз MyISAM ба муҳаррики нигаҳдории InnoDB табдил додан мумкин аст?

Дар ин мақола, мо беҳтарин таҷрибаҳоро барои табдили оммавии MyISAM ба муҳаррикҳои нигоҳдории InnoDB дар пойгоҳҳои додаҳои MySQL баррасӣ хоҳем кард.

Мо ба шумо қадам ба қадам тавассути раванди табдилдиҳӣ роҳнамоӣ мекунем ва маслиҳатҳо ва ҳилаҳои муфидро барои таъмини самаранок ва бехатар иҷро кардани он пешниҳод мекунем.

Новобаста аз он ки шумо мудири пойгоҳи додаҳо ё таҳиягар ҳастед, ин дастур ба шумо кӯмак мекунад, ки фарқияти байни MyISAM ва InnoDB-ро фаҳмед ва чаро табдил ба InnoDB барои беҳсозии кор ва баланд бардоштани эътимоднокии додаҳо муҳим аст.

Бо риояи қадамҳои муфассали мо, шумо метавонед ба осонӣ пойгоҳи додаҳои MySQL- и худро ба муҳаррики нигоҳдории InnoDB табдил диҳед ва бо ин васила самаранокиро беҳтар созед ва амнияти маълумот ва якпорчагиро таъмин намоед.

Чӣ тавр маҷмӯи махзани MySQL-ро аз MyISAM ба муҳаррики нигаҳдории InnoDB табдил додан мумкин аст?

Дар системаи пойгоҳи додаҳои MySQL, MyISAM ва InnoDB ду муҳаррики умумии нигаҳдорӣ мебошанд. MyISAM зуд ва барои сенарияҳои дорои амалиёти зиёди хониш мувофиқ аст.

InnoDB транзаксияҳо, калидҳои хориҷӣ ва қулфкунии сатҳи сатрро дастгирӣ мекунад ва барои барномаҳое мувофиқтар аст, ки тамомияти додаҳо ва назорати ҳамоҳангиро талаб мекунанд. Пас, вақте ки мо бояд ҷадвалҳои MyISAM-ро ба InnoDB табдил диҳем, мо бояд чӣ кор кунем?

Чаро MyISAM-ро ба InnoDB табдил диҳед?

Аввалан, биёед дар бораи он сӯҳбат кунем, ки чаро мо ин гузаришро анҷом медиҳем.

Гарчанде ки MyISAM кори хуб дорад, аммо он дар амнияти додаҳо ва коркарди ҳамзамон камбудиҳо дорад.

InnoDB дастгирии транзаксияро пешниҳод мекунад, ки метавонад мутобиқати маълумотро таъмин кунад ва ҳолатҳои ҳамоҳангии баландро ҳал кунад.

1. Якпорчагии маълумот: InnoDB транзаксияҳоро дастгирӣ мекунад, ки амалиётҳои баргардонидани маълумотро имкон медиҳанд ва мувофиқати маълумотро таъмин мекунанд.

2. Назорати ҳамзамон: InnoDB қулфи сатҳро истифода мебарад, ки барои барномаҳои ҳамзамон бо сатҳи баланд мувофиқ аст.

3. Дастгирии калидҳои хориҷӣ: InnoDB калидҳои хориҷиро дастгирӣ мекунад, ки метавонанд якпорчагии истинодии маълумотро таъмин кунанд.

Усули табдили маҷмӯии MyISAM ба InnoDB

Мо метавонем як изҳороти SQL-ро барои тавлиди изҳороти табдилдиҳӣ барои ҳамаи ҷадвалҳо истифода барем ва сипас ҳамаро якбора иҷро кунем.

Ин мушкил ба назар мерасад, аммо дар асл хеле содда аст. Танҳо чанд қадам.

Қадами 1: Махзани маълумотро интихоб кунед

Аввалан, боварӣ ҳосил кунед, ки шумо пойгоҳи додаеро интихоб кардаед, ки мехоҳед дар он кор кунед. Фармонҳои зеринро истифода бурдан мумкин аст:

mysql
USE 你要操作的数据库名;

Қадами 2: Эҷоди изҳороти табдил

Баъдан, мо бояд изҳороти SQL-ро тавлид кунем, ки ҳамаи ҷадвалҳои MyISAM-ро ба ҷадвалҳои InnoDB табдил медиҳанд.

Инро тавассути пурсиш кардан мумкин аст information_schema.tables ҷадвал барои ноил шудан.

Изҳороти зерини SQL-ро иҷро кунед:

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

Ин изҳорот маҷмӯи изҳороти ALTER TABLE тавлид мекунад, ки муҳаррики нигаҳдории ҳар як ҷадвали MyISAM-ро ба InnoDB иваз мекунанд.

Қадами 3: Эъломияи табдилро иҷро кунед

Натиҷаи дар қадами қаблӣ тавлидшударо нусхабардорӣ кунед ва зеҳни сунъӣ метавонад ба мо дар филтр кардани марзҳо ба осонӣ кӯмак кунад.

Дар ChatGPT инҳоро ворид кунед :

请帮我过滤以下边框:

+--------------------------------------------------------------+
| ALTER TABLE table1 ENGINE=InnoDB; |
| ALTER TABLE table2 ENGINE=InnoDB; |
| ALTER TABLE table3 ENGINE=InnoDB; |
+--------------------------------------------------------------+

Сипас, вақте ки дар MySQL иҷро мешавад, MySQL ин изҳоротҳои ALTER TABLE-ро бо навбат иҷро мекунад, то ҳамаи ҷадвалҳои MyISAM-ро ба ҷадвалҳои InnoDB табдил диҳад.

Мисол

Тасаввур кунед, ки пойгоҳи додае, ки шумо мехоҳед кор кунед, ном дорад example_db, қадамҳои зеринро иҷро кунед:

  1. Махзани маълумотро интихоб кунед:
USE example_db;
  1. Эҷоди изҳороти табдил:
SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=InnoDB;') 
FROM information_schema.tables 
WHERE table_schema="example_db" AND ENGINE="MyISAM";
  1. Изҳороти тавлидшударо нусхабардорӣ кунед ва онро дар MySQL иҷро кунед:
ALTER TABLE table1 ENGINE=InnoDB;
ALTER TABLE table2 ENGINE=InnoDB;

Эҳтиёткорӣ

Пеш аз иҷрои ин амалиёти табдили партия, чанд нуктаро бояд қайд кард:

1. Нусхабардории маълумот: Пеш аз анҷом додани табдилдиҳии партиявӣ, боварӣ ҳосил кунед, ки нусхаи пурраи пойгоҳи додаҳо барои пешгирӣ аз гум шудани маълумот анҷом дода шудааст.

2. Муҳити санҷишӣ: Беҳтар аст, ки аввал дар муҳити санҷишӣ санҷиш гузаронед, то боварӣ ҳосил кунед, ки раванди табдилдиҳӣ ба кори муқаррарии барнома таъсир намерасонад.

3. Иҷозатҳои пойгоҳи додаҳо: Боварӣ ҳосил кунед, ки шумо барои иҷрои амалиёти ALTER TABLE иҷозатҳои кофии пойгоҳи додаҳоро доред.

хулоса

Бо қадамҳои дар боло зикршуда, мо метавонем ба осонӣ ҳама ҷадвалҳои MyISAM-ро дар пойгоҳи додаҳои MySQL ба ҷадвалҳои InnoDB табдил диҳем. Ин метавонад на танҳо қобилияти коркарди ҳамзамон пойгоҳи додаҳоро беҳтар созад, балки амният ва якпорчагии маълумотро баланд бардорад.

Умедворам, ки ин мақола метавонад ба шумо кӯмак кунад, ки базаи MySQL-ро беҳтар фаҳмед ва идора кунед. Агар шумо ягон савол ё пешниҳоде дошта бошед, лутфан дар минтақаи шарҳ паём гузоред.

Ин ҳама дар бораи табдили партияи MyISAM ба InnoDB аст. Акнун шумо метавонед онро санҷед!

🔧💡Мехоҳед бидонед, ки чӣ тавр ҷадвали InnoDB-ро ба муҳаррики пешфарзии MyISAM бо истифода аз phpMyAdmin табдил диҳед ? Ин мақола қадамҳо ва роҳнамоии муфассалро барои кӯмак ба шумо дар анҷом додани табдилдиҳӣ пешниҳод мекунад!

👇Давом додани хондан тавсия дода мешавад👇

Истинодро клик кунед, то малакаҳои бештари табдилдиҳии пойгоҳи додаҳоро омӯзед ва идоракунии пойгоҳи додаҳои худро оптимизатсия кунед! 📚💻

Умедворам, ки мақолаи "Чӣ тавр MyISAM-ро ба муҳаррики нигаҳдории InnoDB дар пойгоҳҳои додаҳои MySQL ба таври пакетӣ табдил додан мумкин аст?", ки дар блоги Чен Вейлианг ( https://www.chenweiliang.com/ ) мубодила шудааст, барои шумо муфид хоҳад буд.

Озодона истиноди ин мақоларо мубодила кунед: https://www.chenweiliang.com/cwl-31790.html

Барои кушодани ҳилаҳои пинҳонии бештар🔑, хуш омадед ба канали мо дар Telegram ҳамроҳ шавед!

Поделиться ва лайк, агар ба шумо писанд омад! Саҳмияҳо ва лайкҳои шумо ангезаи доимии мо мебошанд!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Акс аз бойгонӣ