
توی دوره رایگان PHP، هر چیزی که برای حرفهای شدن نیاز داری رو یاد میگیری! از مفاهیم پایه تا پیشرفته، همراه با یه پروژه واقعی برای ساخت یه سایت مثل آپارات.
مشاهده بیشتر
توی این دوره با هم یه وبسایت خبری واقعی رو از صفر میسازیم! از طراحی دیتابیس و احراز هویت تا ساخت API و یه پنل مدیریت حرفهای، همه رو یاد میگیریم و آماده پروژههای واقعی میشی!
مشاهده بیشترمشخصات مقاله
آموزش Cache کردن در PHP توسط Recordset
آموزش Cache کردن در PHP توسط Recordset
یک ویژگی ظریف در ADOdb ، Cache کردن Recordset است. این کار باعث سریع شدن نتایج پرس و جو می شود. از چندین متد می توان برای Cache کردن Recordset استفاده کرد. این کار باعث می شود که اطلاعات و داده های شما در Server Cache شوند و با ارسال درخواست از طرف کاربر اطلاعات Cache شده در مرورگر نمایش داده می شود برای آموزش Cache در PHP شما می توانید از RecordSet برای Cache در PHP استفاده کنید
مثال:CacheExecute() CachePageExecute() CacheSelectLimit() CacheExecute()
مانند Execute است، فقط recordset برای $secs2cache ثانیه، در دایرکتوری $ADODB_CACHE_DIR، cache می شود. اگر CacheExecute() دوباره با همان پارامترها، همان پایگاه داده، همان نام کاربری و همان پسورد، فراخوانی شود و Recordset، کش (cache) شده منقضی نشده باشد، همان recordset کش شده برگردانده می شود.
include('adodb.inc.php'); include('tohtml.inc.php'); $ADODB_CACHE_DIR = '/usr/local/ADOdbcache'; $conn = &ADONewConnection('mysql'); $conn->PConnect('localhost','userid','password','database'); $rs = $conn->CacheExecute(15, 'select * from table'); # cache 15 secs
آموزش ()CachePageExecute در PHP
CachePageExecute($secs2cache, $sql, $nrows, $page, $inputarr=false)
برای صفحه بندی کردن در PHP (pagination) و یا صفحه صفحه کردن در PHP Recordset استفاده می شود صفحه ها از 1 شروع می شود نه صفر.
include_once('adodb.inc.php'); include_once('adodb-pager.inc.php'); session_start(); $db = NewADOConnection('mysql'); $db->Connect('localhost','root','','xphplens'); $sql = "select * from adoxyz "; $pager = new ADODB_Pager($db,$sql); $pager->Render($rows_per_page=5);
()CacheSelectLimit در PHP
CacheSelectLimit([$secs2cache,] $sql, $numrows=-1,$offset=-1,$inputarr=false)
مانند SelectLimit در PHP است، فقط recordset بازگشتی برای $secs2cache ثانیه، در دایرکتوری $ADODB_CACHE_DIR، cache می شود.
$conn->Connect(...); $conn->cacheSecs = 3600*24; // cache 24 hours $rs = $conn->CacheSelectLimit('select * from table',10);
بازدهی این 3 متد انقدر متفاوت است که باید درباره زمان مناسب برای کش کردن در سرور PHP صحبت کنیم. هنگامی که سرور پایگاه داده شما خیلی از وب سرور PHP شما کند تر است، و یا پایگاه داده ترافیک شدید دارد، کش کردن مناسب است چون بار روی پایگاه داده را کم می کند. اگر پایگاه داده شما بار چندانی ندارد و خیلی از وب سرورتان سریع تر است، کش کردن کارایی و بازدهی را کاهش می دهد.