Nếu bạn đặt Yii để đăng nhập truy vấn cơ sở dữ liệu ( 'enableParamLogging' => true trong các thiết lập db của tập tin cấu hình của bạn), bạn có thể thấy rằng Yii truy vấn cơ sở dữ liệu thường xuyên cho các truy vấn ActiveRecord. Ví dụ: Giả sử bạn có một mô hình tên người dùng và bạn nói Yii để giúp bạn có một người sử dụng bằng cách khóa chính, Yii sẽ truy vấn cơ sở dữ liệu ba lần (!). Nó sẽ làm một truy vấn các cột hiển thị, sau đó là một chương trình tạo các truy vấn bảng, sau đó cuối cùng nó sẽ truy vấn cơ sở dữ liệu cho các dữ liệu thực tế. Hai câu hỏi đầu tiên là như vậy Yii biết giản đồ của bảng người dùng của bạn. Nếu thời gian chuyến đi vòng từ máy chủ ứng dụng của bạn đến máy chủ cơ sở dữ liệu của bạn là 100ms (nếu nó thực sự này chậm, bạn nên làm một cái gì đó về nó), sau đó hai truy vấn để có được các giản đồ sẽ thêm tối thiểu là 200ms để thời gian phản ứng ứng dụng của bạn. Nó sẽ làm điều này cho tất cả các yêu cầu duy nhất mà populates mô hình người dùng. Tùy thuộc vào cách ứng dụng của bạn được viết, thậm chí nó có thể làm điều đó nhiều lần trong một yêu cầu duy nhất. Nếu, mặt khác, bạn nói với Yii sử dụng giản đồ bộ nhớ đệm, Yii sẽ kiểm tra bộ nhớ cache để xem nếu nó đã biết giản đồ để bạn bảng người sử dụng và nếu có, nó sẽ sử dụng thay vì nhấn cơ sở dữ liệu. Có vẫn còn độ trễ liên quan đến việc kiểm tra bộ nhớ cache, nhưng hy vọng nó là nhỏ hơn hoặc bằng với độ trễ để các máy chủ cơ sở dữ liệu. Giả sử bạn đang sử dụng một máy chủ Redis cho bộ nhớ đệm và nó cũng có một độ trễ 100ms (còn ridiculously dài). Caching giản đồ vẫn sẽ nhanh hơn so với truy vấn cơ sở dữ liệu, vì Yii sẽ chỉ cần truy vấn bộ nhớ cache một lần duy nhất để lấy đồ, so với hai chuyến đi đến các cơ sở dữ liệu. Vì vậy, trong ví dụ này chuyển từ truy vấn một cơ sở dữ liệu độ trễ cao cho các giản đồ để truy vấn một máy chủ cache độ trễ cao vẫn sẽ giúp bạn tiết kiệm thời gian. Trong thực tế, bộ nhớ cache của bạn nên có độ trễ thấp hơn nhiều so với cơ sở dữ liệu của bạn và do đó bạn tiết kiệm thời gian hơn nhiều và nếu ứng dụng của bạn rất phức tạp từ xa, Yii sẽ tải giản đồ từ nhiều bảng vào từng yêu cầu để đồ bộ nhớ đệm có thể làm cho một sự khác biệt rất lớn trong đáp ứng yêu cầu thời gian.
đang được dịch, vui lòng đợi..