MySQL өгөгдлийн сан дахь MyISAM-г InnoDB хадгалах систем рүү хэрхэн багцаар хөрвүүлэх вэ?

Энэ нийтлэлд бид MySQL мэдээллийн сан дахь MyISAM-ийг InnoDB хадгалах хөдөлгүүр болгон бөөнөөр нь хөрвүүлэх шилдэг туршлагуудыг судлах болно.

Бид хөрвүүлэх үйл явцыг алхам алхмаар удирдан чиглүүлж, үүнийг үр дүнтэй, аюулгүй болгохын тулд хэрэгтэй зөвлөмж, аргачлалуудыг өгөх болно.

Та өгөгдлийн сангийн администратор эсвэл хөгжүүлэгч эсэхээс үл хамааран энэхүү гарын авлага нь 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: Хөрвүүлэлтийн мэдэгдлийг бий болгох

Дараа нь бид бүх MyISAM хүснэгтүүдийг InnoDB хүснэгт болгон хувиргах SQL хэллэгүүдийг үүсгэх хэрэгтэй.

Үүнийг асуулга хийх замаар хийж болно information_schema.tables хүрэх хүснэгт.

Дараах SQL мэдэгдлийг ажиллуулна уу:

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

Энэ мэдэгдэл нь MyISAM хүснэгт бүрийн хадгалах системийг InnoDB болгон өөрчилдөг ALTER TABLE мэдэгдлийн багцыг үүсгэдэг.

Алхам 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 үйлдлийг гүйцэтгэхэд хангалттай өгөгдлийн сангийн зөвшөөрөлтэй эсэхээ шалгаарай.

Эцэст нь

Дээрх алхмуудыг хийснээр бид MySQL өгөгдлийн сан дахь бүх MyISAM хүснэгтүүдийг InnoDB хүснэгт рүү хялбархан багцлан хөрвүүлэх боломжтой. Ингэснээр мэдээллийн сангийн зэрэгцэн боловсруулах чадварыг сайжруулаад зогсохгүй мэдээллийн аюулгүй байдал, бүрэн бүтэн байдлыг сайжруулж чадна.

Энэ нийтлэл нь MySQL мэдээллийн санг илүү сайн ойлгож, ажиллуулахад тусална гэж найдаж байна. Хэрэв танд асуулт, санал байвал коммент хэсэгт мессеж үлдээнэ үү.

Энэ бол MyISAM багцыг InnoDB болгон хөрвүүлэх тухай юм. Одоо та үүнийг туршиж үзэх боломжтой!

🔧💡phpMyAdmin ашиглан InnoDB хүснэгтийг MyISAM анхдагч хөдөлгүүр рүү хэрхэн хөрвүүлэхийг мэдэхийг хүсч байна уу ? Энэ нийтлэлд хөрвүүлэлтийг хялбархан дуусгахад туслах дэлгэрэнгүй алхамууд болон зааварчилгаа өгөгдсөн болно!

👇Үргэлжлүүлэн уншихыг зөвлөж байна👇

Өгөгдлийн сан хөрвүүлэх ур чадваруудыг олж мэдэхийн тулд холбоос дээр дарж, мэдээллийн баазын менежментээ оновчтой болгоно уу! 📚💻

Чен Вэйлиангийн блог ( https://www.chenweiliang.com/ ) дээр нийтлэгдсэн "MySQL мэдээллийн санд MyISAM-г InnoDB хадгалах систем болгон хэрхэн багцаар хөрвүүлэх вэ?" нийтлэл танд тус болно гэж найдаж байна.

Энэ нийтлэлийн холбоосыг хуваалцахаас бүү эргэлзээрэй: https://www.chenweiliang.com/cwl-31790.html

Илүү олон далд заль мэхийг нээхийн тулд манай Telegram сувагт нэгдэнэ үү!

Хэрэв танд таалагдвал лайк дарж, хуваалцаарай! Таны шэйр, лайк бол бидний байнгын урам зориг юм!

 

发表 评论

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

TOP хүртэл гүйлгэж