2010-02-23 43 views
5

Tôi cần tối ưu hóa dịch vụ web của mình, nhưng không biết bắt đầu từ đâu. Chúng tôi đang chạy GWT, PHP và PostgreSQL. Thậm chí không đạt đến đỉnh điểm ở bất kỳ dữ liệu hiệu suất nào, tôi đoán rằng các tối ưu hóa chính sẽ xảy ra trong cơ sở dữ liệu.Mẹo và thủ thuật tối ưu hóa

Tôi không biết gì về việc tái cơ cấu DB, cũng như lập chỉ mục. (Không biết bất cứ điều gì 'bout DBs thực sự.) Tất cả các con trỏ rất nhiều đánh giá cao trong bất kỳ của ba lĩnh vực!

Trả lời

10

Luôn luôn bắt đầu với phép đo. Cho đến khi bạn biết nơi có bất kỳ tắc nghẽn nào, bạn không biết phải cải thiện điều gì. "Thậm chí không cần xem qua bất kỳ dữ liệu hiệu suất nào", bạn không thể thực hiện cuộc gọi phù hợp - hoặc ít nhất, tôi thường thấy rằng Tôi đưa ra các dự đoán sai về hiệu suất bị ảnh hưởng. Có lẽ bạn giỏi đoán hơn tôi :) (Tất nhiên, nó cũng có thể nằm trong cơ sở dữ liệu trong mã của bạn ...)

Công cụ đo lường có thể đơn giản như báo cáo nhật ký để xem các loại yêu cầu khác nhau bao lâu Về phía cơ sở dữ liệu, bạn gần như chắc chắn muốn sử dụng EXPLAIN để xem xét các kế hoạch thực thi truy vấn ... nhưng trước đó bạn sẽ muốn biết truy vấn nào đang làm tổn thương bạn trong vị trí đầu tiên và hơn thế nữa, yêu cầu dịch vụ web chính nó là tốn kém.

+1

Tiểu sử sớm và thường xuyên. Bắt đầu lược tả tại thời điểm thiết kế khi tạo các giải pháp tăng đột biến. Bao gồm hồ sơ như một phần của thử nghiệm hiệu suất. Hoạt động sản xuất hồ sơ. Người ta phải có một danh sách các "điểm nóng" tiềm năng mọi lúc trong quá trình phát triển. –

+0

Nếu bạn biết về bất kỳ công cụ nào giúp tôi thực hiện các phép đo, điều đó thật tuyệt vời. –

+0

Một tìm kiếm nhanh trong "php profiler" cho nhiều lượt truy cập. Dường như có một số giải pháp thương mại và cũng có một số tùy chọn miễn phí. – TMN

2

Nhìn vào best practices from yahoo trước khi chạm vào db (và trước khi xác định nút cổ chai của bạn). Bạn không muốn tốn nhiều thời gian cho một cải tiến tốc độ nhỏ, thường có thể đạt được những tốc độ tăng tốc lớn bằng cách sử dụng các mẹo trong liên kết.

Để cấu hình lối vào của bạn, bạn có thể sử dụng page speed.

2

Như phần còn lại đã nói, hãy đảm bảo bạn xác định các nút cổ chai của mình trước tiên.

Theo như mối quan tâm của bạn về DB đi tôi sẽ khuyên bạn nên tạo một số chỉ số trên bảng của bạn để tăng tốc độ truy vấn chậm (chỉ khi xác định)

http://www.postgresql.org/docs/8.2/static/sql-createindex.html

CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] name ON table [ USING method ] 
    ({ column | (expression) } [ opclass ] [, ...]) 
    [ WITH (storage_parameter = value [, ... ]) ] 
    [ TABLESPACE tablespace ] 
    [ WHERE predicate ] 

Hãy chắc chắn để làm một số đọc khi nào và khi nào không sử dụng chỉ mục