אַרטיקל וועגווייַזער
דער סטאָרידזש מאָטאָר פון אַ דאַטאַבייס טיש איז ווי דער מאָטאָר פון אַ מאַשין; טוישן דעם מאָטאָר ענדערט גלייך די פאָרשטעלונג און קעראַקטעריסטיקס. פילע מענטשן טראַכטן אַז אַ דאַטאַבייס איז נאָר פֿאַר סטאָרידזש דאַטן, אָבער ווען איר טאַקע אָנהייבן צו אַרבעטן אויף אים... InnoDB 转成 מייסאַםנאָר דעמאָלט וועט איר אַנטדעקן די באַהאַלטענע סודות הינטער דעם.
פארוואס זאָל איינער וועלן איבערגיין פון InnoDB צו MyISAM?
אין פילע סינעריאָס, איז MyISAM שנעלער, ספּעציעל פֿאַר לייען-שוועריקע און שרייבן-לייכטע אַפּליקאַציעס ווי לאָג און סטאַטיסטיק דאַטאַבייסעס.
איר טיש-לעוועל שלאָס מעקאַניזם לויפט טאַקע זייער גלאַט אונטער נידעריק קאָנקורענץ.
דערצו, MyISAM'ס טעקע סטאָרידזש איז מער אינטואיטיוו; איינער .MYD סטאָר דאַטן, איינס .MYI סטאָרינג אינדעקסן, מיגרירן און באַקאַפּן זענען אַלע זייער באַקוועם.
אבער, InnoDB'ס טראנזאקציע און פרעמדע שליסל שטיצע איז כמעט א נויטווענדיקייט אין קאמפליצירטע ביזנעס סצענארן.
דעריבער, מוזט איר אויסגעפינען צי אייער געשעפט דארף טאקע די פֿעיִקייטן איידער איר מאַכט דעם איבערגאַנג.
קערן באַפֿעל: ALTER TABLE
צו קאָנווערטירן אַן איינציקע טאַבעלע פֿון InnoDB צו MyISAM, דאַרפֿסטו נאָר איין שורה קאָד:
ALTER TABLE `你的表名` ENGINE = MyISAM;
נאכדעם וואס די אויספירונג איז פארטיג, וועט די טאבעלע'ס סטאָרידזש מאָטאָר ווערן געטוישט.
איז דאָס נישט גאַנץ פּשוט?
באַטש קאָנווערסיע: אויטאָמאַטישע סקריפּט דזשענעריישאַן
אויב איר האָט דאַזאַנז אָדער אפילו הונדערטער טישן, איז זיי מאַנועל מאָדיפיצירן זיכער נישט פּראַקטיש.
אין דעם פונקט, קען מען ניצן איין אנפֿראַגע צו אויטאָמאַטיש דזשענערירן באַטש קאָנווערסיע סטייטמענטס:
SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE = MyISAM;')
FROM information_schema.tables
WHERE table_schema = '你的数据库名' AND engine = 'InnoDB';
נאכן לויפן, וועט עס ארויסגעבן א הויפן פון... ALTER TABLE ... דערקלערונג.
קאפיר די סטעיטמענטס און פיר זיי אויס אלע אויף איין מאל כדי צו ענדיגן די באַטש קאנווערזשאַן אין איין מאל.
דאָס איז וואָס מען רופט "אָטאָמאַטיש באַטש קאָנווערסיע".
ריזיקע אפשאצונג פאר קאנווערזיע

פרעמדע שליסל באגרענעצונגען
InnoDB שטיצט פרעמדע שליסלען, בשעת MyISAM שטיצט זיי בכלל נישט.
אַמאָל קאָנווערטירט, וועלן פרעמדע שליסל באַגרענעצונגען גלייך אַוועקגעוואָרפן ווערן.
אויב אייער געשעפט פארלאזט זיך אויף קאַסקיידינג דילייץ אדער דערהייַנטיקונגען, וועט די לאָגיק אינגאנצן דורכפאַלן נאָך דער קאָנווערסיע.
טראַנסאַקציע שטיצע
InnoDB האט טראַנזאַקציעס און שטיצט זיי. COMMIT 和 ROLLBACK.
מייַןISAM האט נישט קיין טראַנזאַקציעס, נאָר טיש-לעוועל שלעסער.
נאך דער קאנווערזיע, וועט אלע טראנזאקציע-פארבונדענע קאד ווערן אומגילטיק, און צוריקרוקן וועט זיין אוממעגלעך אין פאל פון אן אויסנאם.
קאָנקורענץ פאָרשטעלונג
InnoDB ניצט רודערן-לעוועל לאַקינג, בשעת MyISAM ניצט טיש-לעוועל לאַקינג.
אין הויך-קאָנקורענסי סצענאַריאָס, פֿאַרשפּאַרט MyISAM אָפֿט טישן, וואָס פֿירט צו פּערפאָרמאַנס פלאַשנעס.
אינדעקס פֿעיִטשערז
在 מיסקל פאר ווערסיע 5.6, האט MyISAM געהאט זיין אייגענעם פול-טעקסט אינדעקס.
אבער מיסקל פול-טעקסט אינדעקסירונג איז שוין געשטיצט אין ווערסיעס 5.6 און 10+ פון MariaDB און InnoDB.
דעריבער, סיידן איר ניצט אַן עלטערע ווערסיע, איז נישט נויטיק צו איבערגיין צו MyISAM פֿאַר פול-טעקסט אינדעקסירונג.
בעסטע פּראַקטיק פּראָצעס
באַקאַפּ דאַטן איידער איר קאנווערטירט, זייט זיכער צו עקספארטירן.
.sqlטעקעס ווערן געהיט כדי צו זיכער מאכן אז זיי קענען צוריקגעשטעלט ווערן אין יעדער צייט.טשעקליסט סטרוקטור ניצט דעם פאלגנדן באַפֿעל צו קאָנטראָלירן צי אַ פרעמדער שליסל עקזיסטירט:
SHOW CREATE TABLE `你的表名`;דורכפירן קאנווערזיע 使用
ALTER TABLEאַלטערנאַטיוולי, קען מען ניצן באַטש סקריפּטן צו פֿאַרענדיקן די קאָנווערסיע.קאָנטראָלירן געזונטהייט סטאַטוס נאָך דעם ווי די קאָנווערסיע איז פֿאַרטיק, לויפֿט:
CHECK TABLE `你的表名`; OPTIMIZE TABLE `你的表名`;דאָס באַשטעטיקט אַז די טיש פֿונקציאָנירט ריכטיק און לאָזט אַרויס פֿראַגמענטן.
פאַרקערט אָפּזוך אופֿן
אויב מען באמערקט פּראָבלעמען מיט פאָרשטעלונג אָדער געשעפט לאָגיק נאָך דער קאָנווערסיע, קענט איר צוריקגיין צו InnoDB אין יעדער צייט:
ALTER TABLE `你的表名` ENGINE = InnoDB;
דאָס איז וואָס מע רופט "רעווערסיבלע אָפּעראַציע," געבנדיק דיר אַ וועג אַרויס.
אויטאָריטעטיווע מיינונגען ציטירט
לויט צו אפיציעלע דאקומענטאציע פון MySQL דערקלערונג:
"פרעמדער שליסל קאנסטרוקציע"aints ווערן נאָר געשטיצט דורך InnoDB. אויב איר קאָנווערטירט אַ טאַבעלע צו MyISAM, וועלן אַלע פרעמדע שליסלען איגנאָרירט ווערן.
——MySQL רעפערענץ מאַנואַל, קאַפּיטל 14.6.6 פרעמדע שליסל באַגרענעצונגען
די סטעיטמענט זאגט אונז קלאר אז פרעמדע שליסלען זענען אינגאנצן אומגילטיק אין MyISAM.
און מאַריאַ דב אפיציעלע דאָקומענטאַציע עס איז אויך באַטאָנט געוואָרן אַז:
"MyISAM שטיצט נישט טראַנזאַקציעס. אַפּליקאַציעס וואָס פאַרלאָזן זיך אויף טראַנזאַקציאָנעלע אָרנטלעכקייט זאָלן נישט נוצן MyISAM."
——מאַריאַדי בי וויסן באַזע, סטאָרידזש ענדזשינס
דעריבער מוז מען צוויי מאָל טראַכטן איידער מען מאַכט אַ וועקסל.
מײַן שטאַנדפּונקט און מסקנה
קאָנווערטירן InnoDB צו MyISAM איז ווי פאַרבייטן דעם מאָטאָר פון אַ לוקסוס אויטאָ מיט אַ טראָק מאָטאָר.
עס קען לויפן, אבער עס לויפט אויף א גאר אנדערשן אופן.
אויב אייער געשעפט באַשטייט פון לייכטע סטאַטיסטישע פֿראַגעס, קען די שנעלקייט און פּשוטקייט פֿון MyISAM זיין מער פּאַסיק.
אָבער, אויב אייער סיסטעם פֿאַרלאָזט זיך אויף טראַנזאַקציעס און פֿרעמדע שליסלען, איז זייער אומפֿאָרזיכטיק קאָנווערטירן ווי אַראָפּנעמען דעם לופֿטזאַק.
דעריבער, ליגט אמתע חכמה נישט אין בלינדערהייט נאכיאגן שנעלקייט, נאר אין באלאנסירן סטאביליטעט און פערפארמאנס.
די אויסוואַל פון דאַטאַבייס באַשטימט די נשמה פון דער סיסטעם.
באַהערשן די סקילז פון סוויטשינג סטאָרידזש ענדזשינס איז ניט בלויז אַ דעמאַנסטריישאַן פון טעכניש פיייקייט, אָבער אויך אַ העכערונג פון אַרכיטעקטוראַל טראכטן.
אויב איר טראַכט וועגן מאַסן-קאָנווערסיע, ביטע דורכפירט ערשט אַן אַלגעמיינע ריזיקאָ-אָפּשאַצונג.
לויפט די טעסט סביבה איין מאל צו סימולירן עכטע ביזנעס סצענארן.
נאכדעם וואס איר באשטעטיגט אז אלעס איז ריכטיג, פירט אויס דעם באפעל אין דער פראדוקציע סביבה.
דאַטאַבייסעס זענען נישט שפּילצייַג; זיי זענען די האַרץ פון פירמע דאַטן.
און דו ביסט דער וואָס קאָנטראָלירט דעם ריטם פון דיין האַרץ.
Hope Chen Weiliang בלאָג ( https://www.chenweiliang.com/ דער אַרטיקל "ווי אַזוי צו קאָנווערטירן InnoDB טאַבעלעס צו MyISAM טאַבעלעס אין MySQL/MariaDB דאַטאַבייסעס?" וואָס ווערט דאָ געטיילט קען זיין נוצלעך פֿאַר אײַך.
ברוכים הבאים צו טיילן דעם לינק פון דעם אַרטיקל:https://www.chenweiliang.com/cwl-34157.html
