2010-05-11 41 views
6

Tôi có một bảng 20 gig có số lượng lớn chèn và cập nhật hàng ngày. Bảng này cũng thường xuyên được tìm kiếm. Tôi muốn biết nếu các chỉ số MySQL có thể bị phân mảnh và có lẽ cần phải được xây dựng lại hoặc một cái gì đó tương tự.Tối ưu hóa MySQL 20 gig table

Tôi cảm thấy khó khăn khi tìm ra BẢNG KIỂM TRA, BẢNG SỬA CHỮA hay cái gì đó tương tự?

Bất kỳ hướng dẫn nào được đánh giá cao, tôi là db newb.

+0

Bạn đang sử dụng phiên bản mySql nào? Công cụ lưu trữ nào được sử dụng cho bảng? – ceteras

Trả lời

1

Tùy thuộc vào phiên bản MySQL bạn đang sử dụng, bạn có thể xem xét tạo phân vùng bảng. Có một số cách để bạn có thể sử dụng nó, hoặc bằng cách thực hiện phân vùng băm id hoặc phân chia ngày tháng.

Ngoài ra còn có các cách để phân tách dữ liệu 'làm việc' một cách hợp lý khỏi dữ liệu lưu trữ. Hãy xem xét một bảng lớn đại diện cho một nguồn cấp dữ liệu. Có thể dữ liệu dưới 14 hoặc 28 ngày tuổi là 95% dữ liệu bạn đã sử dụng và phần còn lại có thể được đặt trong bảng lưu trữ.

Nếu có thể phân vùng thành nhiều máy chủ đại diện cho khối dữ liệu là có thể, có một số bài thuyết trình tuyệt vời về cách tạo hệ thống lưu trữ dữ liệu liên kết bằng cách sử dụng MySQL. Brad Fitpatrick's overview of LiveJournal là một nơi tuyệt vời để bắt đầu.

Tùy thuộc vào loại dữ liệu bạn đang lưu trữ, thậm chí bạn có thể không cần đến MySQL. Nếu hầu hết các tra cứu của bạn là khóa chính, bạn có thể muốn điều tra các hệ thống lưu trữ khóa/giá trị như Redis hoặc Cassandra để xem chúng có đáp ứng nhu cầu của bạn hay không.