View Full Version : سوال: آیا کش کردن اطلاعات توی سیستم فایل مشکلی پیش نمیاره؟
idocsidocs
چهارشنبه 08 تیر 1390, 11:53 صبح
من شنیدم که سیستم فایل سرعتش از دیتابیس کمتر هست و از طرفی اگر چند درخواست با هم به فایل برسه پس اچ پی نمی تونه این درخواستها رو مدیریت کنه و بعضی از این درخواستها از بین می ره.
با توجه به این مطلب چطور باید از سیستم کش استفاده کنیم تا سرعت پایین نیاد و درخواستها از بین نرن؟
AMIBCT
چهارشنبه 08 تیر 1390, 12:08 عصر
cache رو معمولا براي محتواي صفحات استفاده ميكنن كه حجم خيلي زيادي نداره
بهتره براي نگهداري از پايگاه داده استفاده كنيد تا كارايي به بيشترين اندازه برسه( پايگاه هميشه فايل رو باز داره و با هر درخواست فايل رو باز و بسته نميكنه )
اگه ميخواهيد از فايل استفاده كنيد
بايد پيشبيني كنيد كه ممكنه يه درخواست با ذخيرهي تغييرات در فايل Cache همزمان بشه
براي مديريت اين موضوع ميتونيد از پايگاه داده و خطاهاي احتمالي در خواندن فايل كمك بگيريد
idocsidocs
چهارشنبه 08 تیر 1390, 14:32 عصر
cache رو معمولا براي محتواي صفحات استفاده ميكنن كه حجم خيلي زيادي نداره
بهتره براي نگهداري از پايگاه داده استفاده كنيد تا كارايي به بيشترين اندازه برسه( پايگاه هميشه فايل رو باز داره و با هر درخواست فايل رو باز و بسته نميكنه )
اگه ميخواهيد از فايل استفاده كنيد
بايد پيشبيني كنيد كه ممكنه يه درخواست با ذخيرهي تغييرات در فايل Cache همزمان بشه
براي مديريت اين موضوع ميتونيد از پايگاه داده و خطاهاي احتمالي در خواندن فايل كمك بگيريد
منظورتون اینه که برای کش کردن، اول کوئری بفرستم و تغییرات جدید رو بگیرم و دوباره کوئری بفرستم و این تغییرات رو کش کنم . بعد برای نمایش این تغییرات توی وبسایت دوباره کوئری بفرستم و این اطلاعات رو نمای بدم؟
اگه منظورتون این هست که باید بگم این کار فشار روی سرور رو 3 برابر می کنه. می شه دقیق تر توضیح بدید؟
AMIBCT
پنج شنبه 09 تیر 1390, 01:15 صبح
نخیر
شما برای ایجاد یک صفحهی سنگین لازمه که پرسوجوهای زیاد و سنگینی رو اجرا کنید
با هر بار تغییر این پرسوجوها رو انجام میدید و محتوای خروجی رو در یه جدول بانک اطلاعاتی ذخیره میکنید
یعنی از html گرفته تا title و body و ...
البته امکان سفارشی کردن این هم فراهمه
از این دفعه به بعد به جای چندین پرسوجوی سنگین برای ایجاد صفحه از اول
فقط یک پرسوجو به جدول Cache میزنید و هر چی اونجا بود رو مستقیم به مرورگر ارسال میکنید
idocsidocs
پنج شنبه 09 تیر 1390, 01:44 صبح
نخیر
شما برای ایجاد یک صفحهی سنگین لازمه که پرسوجوهای زیاد و سنگینی رو اجرا کنید
با هر بار تغییر این پرسوجوها رو انجام میدید و محتوای خروجی رو در یه جدول بانک اطلاعاتی ذخیره میکنید
یعنی از html گرفته تا title و body و ...
البته امکان سفارشی کردن این هم فراهمه
از این دفعه به بعد به جای چندین پرسوجوی سنگین برای ایجاد صفحه از اول
فقط یک پرسوجو به جدول Cache میزنید و هر چی اونجا بود رو مستقیم به مرورگر ارسال میکنید
بحث جالبی بود، سایر دوستان نظری ندارن؟
eshpilen
پنج شنبه 09 تیر 1390, 10:29 صبح
کش یعنی همین دیگه. یعنی نتیجهء یک عملیات سنگین از نظر پردازشی و/یا زمانبر رو در جایی ذخیره میکنی که بعدا بشه با پردازش کمتر و/یا سرعت بالاتری بهش دسترسی داشت.
محل ذخیره سازی این نتایج لزوما محدود به سیستم فایل نیست.
برای مقایسهء سرعت فایل و دیتابیس هم فکر میکنم پارامترهای بیشتری داشته باشه و به شرایط برنامه و بار اون برمیگرده. برای اطمینان میشه در عمل تست کرد. خصوصا که سادگی و خوانایی برنامه هم هم فاکتور مهمی هست. بهرحال دیتابیس هم برای اتصال و تبادل اطلاعات هزینه های اضافه ای داره و فکر نمیکنم برای کارهای ساده و کم ترافیک مزیت خاصی نسبت به فایل داشته باشه. بعدم بنده نمیدونم مثلا وقتی دیتابیس دیتا با حجم های مختلف رو بارها و بارها در یک فایل ذخیره و حذف میکنه مشکل اضافه و کم اومدن فضا و ایجاد حفره ها در اون فایل و احتمالا چند تکه شدن دیتا رو چطوری مدیریت میکنه و آیا این مسئله کارایی رو کاهش نمیده؟ احتمالا چنین سیستم کشی و دیتابیس و جدولهای اون باید حساب شده طراحی بشه تا از چنین شرایطی هم تاحد ممکن جلوگیری بشه.
البته یه مزیت دیگر دیتابیس امنیت بیشتر اون هست. درمقابل مزیت سیستم فایل اینه که درمورد بعضی کاربردها و شرایط میتونه به حد چشمگیری ساده تر و خواناتر باشه و از نظر تست و بررسی و نظارت و غیره هم ساده تره (چون فایلهای کش ایجاد شده رو میشه مستقیما مشاهده کرد و باهاشون با روشهای ساده و از طریق برنامه های مختلف کار کرد).
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.