Tôi có một cơ sở dữ liệu MySQL với một bảng MyISAM với 4 triệu hàng. Tôi cập nhật bảng này khoảng một lần một tuần với khoảng 2000 hàng mới. Sau khi cập nhật, tôi sau đó thay đổi bảng như sau:MySQL ALTER TABLE trên bảng rất lớn - có an toàn để chạy không?
ALTER TABLE x ORDER BY PK DESC
Tôi sắp xếp bảng theo trường khóa chính theo thứ tự giảm dần. Điều này đã không cho tôi bất kỳ vấn đề gì về máy phát triển của tôi (Windows với bộ nhớ 3GB). Ba lần tôi đã thử nó thành công trên máy chủ Linux sản xuất (với RAM 512MB - và đạt được bảng xếp hạng kết quả trong khoảng 6 phút mỗi lần), lần cuối tôi thử nó, tôi phải dừng truy vấn sau khoảng 30 phút và xây dựng lại cơ sở dữ liệu từ một bản sao lưu.
Máy chủ 512MB có thể đối phó với tuyên bố thay đổi đó trên bảng lớn như vậy không? Tôi đã đọc rằng một bảng tạm thời được tạo ra để thực hiện lệnh ALTER TABLE.
Câu hỏi: Lệnh này có thể được chạy an toàn không? Điều gì sẽ là thời gian dự kiến cho sự thay đổi của bảng?
Tôi nghĩ "Bảng rất lớn" có thể là một lời nói quá mức. 4M hàng không phải là một bảng rất lớn. 1bn có thể là. – MarkR