2012-05-30 37 views
6

Evening,30 triệu hàng trong MySQL

Tôi đang trải qua quá trình dài của nhập dữ liệu từ một đập, 15 tuổi, chỉ đọc định dạng dữ liệu vào MySQL để xây dựng một số bảng thống kê nhỏ từ nó .

Bảng lớn nhất mà tôi đã xây dựng trước đây là (tôi nghĩ) 32 triệu hàng, nhưng tôi không ngờ rằng nó sẽ trở nên lớn và thực sự đang căng thẳng MySQL.

Bảng sẽ trông như thế này:

surname name year rel bco bplace rco rplace 
Jones  David 1812 head Lond Soho  Shop Shewsbury 

ints Vì vậy, nhỏ và varchars.

Có ai có thể đưa ra lời khuyên về cách làm việc này nhanh chóng nhất có thể không? Có chỉ mục trên bất kỳ trợ giúp coulmns, hoặc họ sẽ làm chậm các truy vấn xuống.

Phần lớn dữ liệu trong mỗi cột sẽ được sao chép nhiều lần. Một số trường không có nhiều hơn 100 giá trị có thể khác nhau.

Các cột chính tôi sẽ truy vấn bảng là: họ, tên, rco, rplace.

+2

Chỉ số tăng tốc độ truy xuất dữ liệu và giảm tốc độ chèn dữ liệu. Nói chung, chúng là một điều rất tốt: Tôi khuyên bạn nên tạo chúng cho từng cột mà bạn có khả năng truy vấn bảng. – eggyal

+3

30 triệu hàng không phải là rất nhiều cho một RDBMS hiện đại. Trừ khi bạn đang thực hiện quét toàn bộ bảng không có chỉ mục, tất nhiên. –

+0

Cảm ơn bạn đã bình luận. Tôi nghĩ đó là một trong những vấn đề với 32 triệu của tôi. bảng hàng. Chèn hàng đã gây ra sự cố. –

Trả lời

5

INDEX trên cột sẽ tăng tốc độ tìm kiếm. Cố gắng INDEX các cột mà bạn sẽ sử dụng thường xuyên hơn trong các truy vấn. Như bạn đã đề cập, bạn sẽ sử dụng các cột surname, name, rco, rplace. Tôi muốn đề nghị bạn lập chỉ mục cho họ.

Vì bảng có 32 triệu bản ghi, việc lập chỉ mục sẽ mất một khoảng thời gian tuy nhiên nó đáng để chờ.

+0

Cảm ơn. Tôi chỉ đang xây cái bàn bây giờ. Vì vậy, tôi có thể xây dựng các chỉ mục trên chèn như trái ngược với trên c. 30 triệu hàng. –

+1

@KohjahBreese: Kiểm tra cả hai cách, bạn có thể thấy rằng việc tạo chỉ mục * một lần * trên 30 triệu hàng nhanh hơn việc tạo chỉ mục tăng dần. –

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