2011-09-21 24 views
6

Đây là một câu hỏi chỉ vì lợi ích của chào bán:Kích thước bảng có ảnh hưởng đến hiệu suất INSERT không?

Trừ tất cả các trung gian để chủ đề nâng cao hoặc kỹ thuật (chỉ số cụm, chèn số lượng lớn, thủ đoạn xuất khẩu/nhập khẩu, vv), không một INSERT mất nhiều thời gian lớn hơn một bảng mọc?

Giả định rằng chỉ có một cột tự động int, ID [tức là tất cả các hàng mới được INSERTED ở phía dưới, nơi không có bộ nhớ phải xáo trộn để chứa một vị trí hàng cụ thể].


Một liên kết đến một "điểm chuẩn MySQL" tốt sẽ có ích. Tôi đã lấy Oracle ở trường, và cho đến nay kiến ​​thức đã làm tôi ít tốt trên SO.

Cảm ơn mọi người.

Trả lời

5

Trải nghiệm của tôi là hiệu suất giảm xuống nếu chỉ mục tập dữ liệu không còn phù hợp với bộ nhớ nữa. Khi điều đó xảy ra, kiểm tra các chỉ mục trùng lặp sẽ phải nhấn vào đĩa và nó sẽ làm chậm đáng kể. Tạo một bảng với nhiều dữ liệu như bạn nghĩ bạn sẽ phải đối phó, và thực hiện một số kiểm tra và điều chỉnh. Nó thực sự là cách tốt nhất để biết những gì bạn sẽ chạy vào.

1

Tôi chỉ có thể chia sẻ trải nghiệm của mình. hy vọng nó giúp.

Tôi đang chèn nhiều hàng vào thời điểm đó, trên cơ sở dữ liệu khổng lồ (vài triệu mục nhập). Tôi có một kịch bản in thời gian trước và sau khi tôi thực hiện chèn. tôi cũng không thấy bất kỳ sự sụt giảm nào trong các buổi biểu diễn.

Hy vọng nó sẽ cho bạn một ý tưởng, nhưng tôi đang sử dụng sqlite chứ không phải trên mysql.

+0

Tôi sẽ cung cấp cho bạn câu trả lời hay nhất nếu bạn hiển thị cho tôi phiên bản chung của tập lệnh điểm chuẩn hiệu suất của bạn với kết quả đầu ra mẫu. Cảm ơn. – Droogans

+0

nó không phải là một kịch bản điểm chuẩn, như tôi đã nói tôi in thời gian trước và sau khi các truy vấn vì vậy tôi thấy họ mất bao lâu. Tôi sử dụng một kịch bản python và đây là tuyên bố để làm điều đó: print datetime.datetime.now(). Strftime ("% H:% M:% S") – Danny

6

Có, nhưng nó không phải là kích thước của bảng mà là kích thước của các chỉ số quan trọng. Sau khi viết lại chỉ mục bắt đầu đập đĩa, bạn sẽ thấy sự chậm lại. Một bảng không có chỉ mục (tất nhiên, bạn sẽ không bao giờ có một thứ như vậy trong cơ sở dữ liệu của bạn) sẽ không thấy sự xuống cấp. Một bảng với các chỉ mục nhỏ gọn tối thiểu có thể phát triển thành một kích thước rất lớn mà không thấy sự xuống cấp. Một bảng với nhiều chỉ số lớn sẽ bắt đầu suy giảm sớm hơn.

+0

Googling "index rewriting" bây giờ ... cảm ơn. – Droogans

1

Tốc độ không bị ảnh hưởng miễn là MySQL có thể cập nhật chỉ mục đầy đủ trong bộ nhớ, khi nó bắt đầu hoán đổi chỉ mục, nó sẽ trở nên chậm hơn. Đây là những gì sẽ xảy ra nếu bạn xây dựng lại một chỉ mục khổng lồ ngay lập tức bằng cách sử dụng ALTER TABLE.

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