2012-06-12 37 views
8

Tôi muốn chạy này trên bàn của tôi:Thay đổi kiểu dữ liệu của một cột trong bảng HUGE. Hiệu suất phát

ALTER TABLE table_name MODIFY col_name VARCHAR(255) 

Nhưng bàn của tôi là rất lớn, nó có hơn 65m (65 triệu) hàng. Bây giờ khi tôi thực hiện, phải mất gần 50 phút để thực hiện lệnh này. Bất kỳ cách nào tốt hơn để thay đổi bảng?

+4

Không, nó sẽ được làm chậm. Một câu lệnh ALTER là một hành động một lần. Chờ đợi và hy vọng bạn không cần phải làm điều đó một lần nữa. –

+3

Bảng lớn? Không. Rất lớn? Vâng. –

Trả lời

3

Vâng, bạn cần

ALTER TABLE table_name CHANGE col_name new_name VARCHAR(255) 

Tuy nhiên, bạn là đúng, phải mất một thời gian để thực hiện thay đổi. Có thực sự không phải là cách nhanh hơn để thay đổi bảng trong MySQL.

Thời gian ngừng hoạt động quan tâm của bạn có thay đổi không? Nếu vậy, đây là một cách tiếp cận có thể: Sao chép bảng sang một bảng mới, sau đó thay đổi tên cột trên bản sao, sau đó đổi tên bản sao.

Bạn có thể đã tìm ra rằng việc thường xuyên thay đổi tên cột trong bảng trong hệ thống sản xuất không phải là một ý tưởng hay.

+0

Có. Tôi không thể đủ thời gian ngừng hoạt động của 50 phút, vì tất cả các hàng sẽ bị khóa trong quá trình này, điều này sẽ ngăn chặn các hành động khác (CRUD) trên bảng này. – Kiran

+0

Uh. Oh. Điều đó có nghĩa, nếu bạn sao chép bảng, các hàng mới và đã thay đổi sẽ xuất hiện trong bảng cũ trong khi bạn sắp xếp lại bảng mới. Nếu đây là dự án của tôi, bây giờ tôi sẽ cố gắng quyết định tầm quan trọng của việc thay đổi tên cột này. –

+0

có. Tôi có thể làm một việc. Thông báo thời gian ngừng hoạt động của 1 giờ và thực hiện thay đổi này khi tải ít hơn. Có lẽ là vào nửa đêm. Tuy nhiên, cảm ơn cho đầu vào của bạn. – Kiran

0

Bạn có thể xử lý thay đổi lược đồ mà không có thời gian chết bằng Oak.

oak-online-alter-table bản sao lược đồ của bảng gốc, áp dụng các thay đổi của bạn và sau đó sao chép dữ liệu. Các hoạt động CRUD vẫn có thể được gọi là sồi đặt một số kích hoạt trên bảng gốc để không có dữ liệu nào bị mất trong quá trình hoạt động.

Vui lòng tham khảo other question nơi tác giả của gỗ sồi đưa ra giải thích chi tiết về cơ chế này và cũng đề xuất các công cụ khác.

Các vấn đề liên quan