উত্তর:
আপনি ভিউ বা ডিবি_উইউরি () ব্যবহার করেন তবে ক্যাশে করার জন্য ম্যাটার নয়। ক্যাশে সর্বদা একই কাজ করে, যখন ক্যাশেটি মিস হয় তখন ডেটা কীভাবে আনা হয়।
কিছু উদাহরণ দেখতে, আপনি ফাংশনগুলি দেখতে পারেন যা ক্যাশে_জেট () ব্যবহার করে , উদাহরণস্বরূপ ভেরিয়েবল_আইনাইটালাইজ () ।
যদি আপনার ফাংশনটিকে একাধিকবার বলা হয় তবে আপনি সম্ভবত এটি একটি স্ট্যাটিক ক্যাশের সাথে সংযুক্ত করতে চান, উদাহরণস্বরূপ দেখুন archiver_get_info () । এবং যদি ডেটা পুনর্নির্মাণটি সত্যই ধীর হয় তবে আপনি লকিং ফ্রেমওয়ার্কটি ভেরিয়েবল_আইনাইটালাইজ () হিসাবে ব্যবহার করে একাধিকবার ঘটতে বাধা দিতে পারেন।
নোট করুন যে একটি একক ক্যোয়ারী ক্যাশে করা কেবল তখনই তা বোধগম্য হয় যদি এটি ধীর হয়, কারণ আপনি মেমক্যাসের মতো বিকল্প ক্যাশে ব্যাকএন্ড ব্যবহার না করা হলে ক্যাশে () একটি ডিবি কোয়েরিও হয়।
এবং শেষ অবধি, ভিউজে ইতিমধ্যে অন্তর্নির্মিত ক্যাশে রয়েছে এবং আপনার দৃষ্টিতে কনফিগার করা যেতে পারে। সুতরাং যে পাশাপাশি একটি বিকল্প হতে পারে।
db_query()
, এবং এটির কাজটি করার মূল বিষয়টি থেকে মূল্যটি ক্যাশ করা $results->fetchAll()
এবং না $results
হওয়া উচিত।
আমি মনে করি না ক্যাচিং ব্যবস্থাপনায় ডিবি স্তরটির কোনও অন্তর্নির্মিত ব্যবস্থা রয়েছে (যদিও আমি ভুল হতে পারি) তবে আপনি ডিফল্ট ক্যাশে API ব্যবহার করতে পারেন could
এটি কেবলমাত্র একটি প্রাথমিক উদাহরণ যা কোনও নির্দিষ্ট ধরণের নোড পেতে কোনও প্রশ্নের ফলাফলকে ক্যাশে করবে:
function MYMODULE_get_nodes_by_type($type) {
// Setup a cache ID
$cid = 'MYMODULE:node_types:' . $type;
// If a cached entry exists, return it
if ($cached = cache_get($cid)) {
return $cached->data;
}
// Otherwise load the data
$data = db_query('SELECT * FROM {node} WHERE type = :type', array(':type' => $type))->fetchAll();
// And cache it
cache_set($cid, $data, 'cache', strtotime('+6 days'));
}
ড্রুপাল সরবরাহ করে এমন স্ট্যান্ডার্ড ক্যাশে_সেট / ক্যাশে_জেট প্রক্রিয়াটি ছাড়াও , যদি আপনি মাইএসকিউএলকে আপনার ডাটাবেস হিসাবে ব্যবহার করেন তবে আপনি ক্যোয়ারী ক্যাশে সক্ষম করতে পারবেন , যা দৃশ্যের ফলাফলগুলি বা অন্য কোনও ডাটাবেস অনুসন্ধানগুলি স্বচ্ছভাবে ক্যাশে করতে পারে। মাইএসকিএলটিউনার ক্যাশে আকারের জন্য ভাল মানগুলি খুঁজে পেতে সহায়তা করতে পারে।
কেবলমাত্র নোট করুন যে আপনি যদি ডাটাবেসটিতে প্রচুর লেখালেখি করে থাকেন তবে ক্যাশে অবৈধকরণ কৌশলটি যেভাবে কাজ করে (কোনও টেবিলের কাছে লেখাটি সেই সারণী থেকে নির্বাচন করুন বা সেই সারণিতে যোগদান করুন) এমন সমস্ত প্রবেশপথকে অকার্যকর করে দেয় কারণ কোয়েরি ক্যাচিং কম কার্যকর হয়।
পোস্টগ্রেএসকিউএল-এর জন্য একটি ক্যাশেিং ব্যবস্থা রয়েছে , তবে এটির সাথে আমার সরাসরি অভিজ্ঞতা নেই।
আমি সম্প্রতি ক্যাশে অ্যাকশন মডিউলটি আবিষ্কার করেছি । এই মডিউলটির সাহায্যে আপনি আপনার ভিউ ক্যাশেটিকে নিয়ম-ট্রিগারযুক্ত ক্যাশে সেট করতে পারেন এবং নির্দিষ্ট দর্শন এবং দর্শন প্রদর্শনগুলিতে ক্যাশে অবৈধ করার জন্য একটি নিয়ম তৈরি করতে পারেন।
উদাহরণস্বরূপ, একটি নির্দিষ্ট সামগ্রীর প্রকারের নোডের তালিকা দেখার জন্য ক্যাশেটি খালি করা যেতে পারে যখন সেই সামগ্রী ধরণের একটি নতুন নোড তৈরি হয়।