5
การปรับเปลี่ยนคอลัมน์ของตาราง mysql ที่มีขนาดใหญ่มากซึ่งมีการหยุดทำงานเพียงเล็กน้อยหรือไม่มีเลย
ฉันจำเป็นต้องทำการเปลี่ยนแปลงตารางเป็นระยะใน mysql 5.1 ส่วนใหญ่เป็นการเพิ่มคอลัมน์ ง่ายมากด้วยคำสั่งแก้ไขตาราง แต่ตอนนี้ตารางของฉันมีมากถึง 40 ล้านแถวและพวกมันกำลังเติบโตอย่างรวดเร็ว ... ดังนั้นคำสั่งเปลี่ยนตารางเหล่านั้นใช้เวลาหลายชั่วโมง ในอีกสองสามเดือนพวกเขาจะใช้เวลาหลายวันที่ฉันคาดเดา เนื่องจากฉันใช้ amazon RDS ฉันไม่สามารถมีเซิร์ฟเวอร์ทาสให้เล่นแล้วเลื่อนระดับเป็นโทได้ ดังนั้นคำถามของฉันคือถ้ามีวิธีการทำเช่นนี้ด้วยการหยุดทำงานน้อยที่สุด? ฉันไม่รังเกียจการดำเนินการที่ใช้เวลาเป็นชั่วโมงหรือเป็นวันถ้าผู้ใช้ยังคงสามารถใช้ฐานข้อมูลได้ ... อย่างน้อยพวกเขาสามารถอ่านได้ในขณะที่กำลังเพิ่มคอลัมน์หรือไม่? จะเกิดอะไรขึ้นถ้าแอพของฉันพยายามเขียน แทรกหรืออัปเดต ถ้ามันล้มเหลวทันทีนั่นก็ไม่เลวจริง ๆ ถ้ามันแค่แฮงค์และทำให้เกิดปัญหากับเซิร์ฟเวอร์ db นั่นเป็นปัญหาใหญ่ .. นี่ต้องเป็นปัญหาเกี่ยวกับการปรับสเกลทั่วไปทุกคนต้องเพิ่มคอลัมน์ .. โดยทั่วไปแล้วฐานข้อมูลการผลิตจะทำอย่างไร Slave -> การย้ายข้อมูลหลักหรือไม่ อัปเดต - ฉันลืมที่จะพูดถึงฉันใช้เครื่องมือจัดเก็บข้อมูล Innodb