2012-02-14 31 views
6

Cố gắng hiểu cơ sở dữ liệu tốt hơn nói chung và đặc biệt là sqlite3:lượt xem sqlite3 ảnh hưởng đến hiệu suất?

Các chế độ xem trong sqlite3 chủ yếu là tính năng tổ chức, cho phép truy vấn phức tạp được chia thành một chuỗi nhỏ hơn; hoặc làm các lượt xem thực sự ảnh hưởng đến hiệu suất của các truy vấn sử dụng chúng?

Tôi nhận thấy rằng các chế độ xem được lưu trữ trong chính cơ sở dữ liệu như một phần của lược đồ. Là các khung nhìn được lưu trữ trên đĩa, được cập nhật tự động khi các bảng phụ thuộc được cập nhật; hoặc chúng được đánh giá theo yêu cầu?

Cảm ơn.

+0

Màu đỏ từ bài đăng trên blog: "Cố gắng tránh sử dụng chế độ xem cho dữ liệu bạn thường xuyên truy cập. Nếu bạn có thể, hãy tạo bảng tạm thời và chèn dữ liệu ở đó. " Bạn có thể tìm thấy ở đây: http://katastrophos.net/andre/blog/2007/01/04/sqlite-performance-tuning-and-optimization-on-embedded-systems/ Tôi không biết điều này có đúng không. – Joelmob

Trả lời

9

Chế độ xem sẽ luôn được thực hiện theo yêu cầu (sqlite3 hoặc cách khác), do đó kết quả mà chúng trả lại không bao giờ được lưu trữ liên tục.

Đối với hiệu suất, trong khi tôi không thể nói riêng với sqlite3, thường thì việc sử dụng chế độ xem sẽ có chi phí thấp hơn khi trình phân tích cú pháp truy vấn/kế hoạch không phải tính lại sql thô trên mỗi lần thực thi. Nó có thể phân tích nó một lần, lưu trữ chiến lược thực thi của nó, và sau đó sử dụng nó mỗi lần truy vấn thực sự chạy.

Tăng hiệu suất bạn thấy với điều này nói chung sẽ nhỏ, trong sơ đồ lớn của sự vật. Nó thực sự chỉ giúp nếu một truy vấn nhanh của nó mà bạn đang thực hiện thường xuyên. Nếu truy vấn chậm của nó mà bạn thực thi không thường xuyên, phí trên được kết hợp với phân tích cú pháp truy vấn là không đáng kể. Số lượt xem thực hiện, tất nhiên, cung cấp mức độ tổ chức tốt đẹp.

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