Tôi đang thêm hình đại diện cho công cụ diễn đàn tôi đang thiết kế và tôi đang tranh luận xem có nên làm điều gì đó đơn giản không (hình ảnh diễn đàn có tên .png) và sử dụng PHP để kiểm tra xem tệp có tồn tại trước khi hiển thị hay không một cái gì đó phức tạp hơn một chút (nhưng không nhiều) và sử dụng một trường cơ sở dữ liệu để chứa tên của hình ảnh để hiển thị.File_exist() trong PHP là một hoạt động rất tốn kém?
Tôi muốn sử dụng phương pháp file_exists() một cách dễ dàng, vì điều đó giúp tôi dễ dàng quay lại hình đại diện "mặc định" nếu hình đại diện hiện tại chưa tồn tại và đơn giản triển khai mã khôn ngoan. Tuy nhiên, tôi lo lắng về hiệu suất, vì điều này sẽ được chạy một lần cho mỗi người dùng được hiển thị cho mỗi lần tải trang trên trang diễn đàn đọc. Vì vậy, tôi muốn biết, hàm file_exists() trong PHP có gây ra bất kỳ sự chậm trễ lớn nào có thể gây ra các lần truy cập hiệu suất đáng kể trong điều kiện giao thông cao không?
Nếu không, tuyệt. Nếu có, ý kiến của bạn về các lựa chọn thay thế để theo dõi hình ảnh do người dùng tải lên là gì? Cảm ơn!
PS: Sự khác biệt về mã mà tôi có thể thấy là các phiên bản kiểm tra tệp cho phép các tệp nói, trong khi biểu mẫu cơ sở dữ liệu tin tưởng rằng cơ sở dữ liệu chính xác và không bận tâm kiểm tra. (chỉ là một url được chuyển tới trình duyệt của khóa học.)
Thông tin bộ nhớ cache rất yên tâm, tôi đã kết thúc với giải pháp file_exists. Tuy nhiên, ý tưởng BLOB trông rất thú vị, tôi có thể thử lại sau này. Cảm ơn! –
nhưng BLOB không tốt cho hiệu suất. Bạn nhận được trên không của chạy PHP, MySQL, và bạn sẽ phải viết hỗ trợ cho xác nhận bộ nhớ cache HTTP, nếu không trình duyệt sẽ không cần thiết giữ lại tải về avatar. – Kornel
Điều quan trọng cần lưu ý là PHP sẽ chỉ lưu lại kết quả của các tệp tồn tại, nó sẽ không lưu trữ kết quả của các tệp không tồn tại. Xem: http://www.php.net/manual/en/function.clearstatcache.php – Brian