2010-03-18 35 views
10

Tôi đã nghe rằng các truy vấn mysql rất tốn kém và bạn nên tránh mọi chi phí làm quá nhiều.Truy vấn MySQL - chúng thực sự đắt đến mức nào?

Tôi đang phát triển một trang web sẽ được sử dụng bởi một số ít người và tôi tự hỏi:

Truy vấn mysql đắt bao nhiêu? Nếu tôi có 400.000 người trong cơ sở dữ liệu của tôi, thì nó tốn kém bao nhiêu để truy vấn nó cho một trong số họ?

Tôi cần phải chú ý đến mức nào khi không thực hiện quá nhiều truy vấn cho mỗi yêu cầu của khách hàng?


Chỉnh sửa: TomTom không thể chính xác hơn với câu trả lời của anh ấy. Theo thử nghiệm perormance trên các trang web liên kết trong các ý kiến ​​(và một vài trang web tôi tìm thấy thông qua một tìm kiếm "mysql truy vấn mỗi giây"), tôi sẽ không gặp phải vấn đề trong một thời gian - mysql có thể làm hàng ngàn truy vấn mỗi giây với một máy chủ từ xa.

Trả lời

15

Chỉ cần bỏ qua nó. Nghiêm túc. Nếu bạn cần dữ liệu, bạn cần dữ liệu. Đảm bảo truy vấn của bạn nhanh chóng hợp lý (nghĩa là chỉ mục thích hợp). Có được một máy chủ thích hợp để xử lý tải. Sử dụng bộ nhớ đệm đầu ra là có ý nghĩa, bắt đầu lưu dữ liệu bộ nhớ đệm khi bạn biết nơi bạn thực sự CÓ vấn đề.

+0

Đó là yên tâm, nhờ :) - một điều mặc dù, có thể giúp bạn đưa ra một ví dụ về các chỉ số thích hợp? Không chắc chắn chính xác những gì bạn đang đề cập đến. – Cam

+2

Nếu bạn luôn chọn tên người dùng bằng tên người dùng của mình thì bạn nên đặt chỉ mục trên cột tên người dùng. Nếu bạn chọn theo id người dùng thì hãy đặt chỉ mục trên cột id người dùng (có thể đã có khóa chính trên đó). Tóm lại: Đặt chỉ mục trên các cột xuất hiện thường xuyên nhất trong điều kiện vị trí của bạn và luôn kiểm tra bằng "GIẢI THÍCH CHỌN ..." nếu chỉ mục được sử dụng. – dbemerlin

+0

@incrediman: Hãy xem http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html, http://dev.mysql.com/doc/refman/5.1/en/ using-explain.html và có thể http://www.mysqlperformanceblog.com/ hoặc http://jan.kneschke.de/projects/mysql/ – VolkerK

2

Nó phụ thuộc vào

a) mức độ của bạn giao thông b) Máy chủ của bạn c) Làm thế nào đắt truy vấn của bạn là

Ví dụ, như một quy luật của, tôi không bao giờ đi qua 15 truy vấn một trang . Tuy nhiên tôi cho phép ít nhất 6-7 để được đắt tiền (1-2 tham gia).

Mọi thứ chỉ thay đổi rất hiếm khi (ví dụ mô tả phim) tôi sẽ lưu vào bộ nhớ cache. Sau đó, trong quản trị, xóa tập tin bộ nhớ cache khi bộ phim đó được cập nhật.

Tuy nhiên tôi đã có các trang web có 80 truy vấn (quay lại trong ngày) và có hơn 200 khách truy cập liên tục làm mới mà không gặp vấn đề gì nhưng tất cả đều rất nhẹ.

Tôi không nghĩ có bất kỳ quy tắc thực sự vững chắc nào mà mọi người sẽ đưa ra hoặc bạn nên tuân theo.

+0

Cảm ơn, +1 cho các con số, điều đó rất yên tâm.Tôi có khoảng 8-10 truy vấn cho mỗi trang tối đa, với hầu hết các trang chỉ sử dụng một vài truy vấn. Không có truy vấn nào của tôi thực sự đắt tiền cả - chúng hầu như là lựa chọn đơn giản và chèn (mặc dù có một SUM, mà tôi đoán là loại đắt tiền, ngoại trừ thực tế nó chỉ tổng cộng khoảng 250 hàng mỗi lần xem trang). – Cam

3

Miễn là các truy vấn của bạn chính xác và được viết càng hiệu quả càng tốt, mySQL được tạo để có thể thực hiện những hành động này.

Nếu bạn nói có 400.000 người dùng mặc dù, và các vấn đề hiệu suất Nhận ra của bạn, bạn nên làm đủ tiền từ những người dùng nâng cấp máy chủ của bạn dù sao :)

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