نوشته اصلی توسط
pakradm
از اینکه اشتباه مرا با مدرک و دلیل گوش زد فرمودید صمیمانه سپاسگزارم
اما یه سوال:::: چرا رم مورد استفاده MySQL به مرور زمان زیاد نمی شود؟؟؟... اما رم مورد استفاده MS SQL هرچقدر که زمان بگذرد بیشتر می شود مثلا اگر زمان استارت سرور 100MB بوده پس از یکماه این عدد به 1GB می رسد؟؟؟
متشکرم
ضمن عرض ادب و احترام،
فرمایش شما به هیچ عنوان صحیح نیست. توی همین انجمن کم نیستن افرادی که سرورشون به دلیل کانفیگ اشتباه و استفاده بیش از حد از حافظه ( رم) با مشکل مواجه شده. درسته که در کانفیگ اولیه و پیش فرض mysql کش کردن غیرفعال هست، اما mysql علاوه بر query caching که mssql داره، thread caching هم داره! و جالبتر از این، mssql قابلیتی به نام in-memory OLTP ( In-Memory) داره که جداول داده شما رو بر اساس استفاده به حافظه منتقل میکنه و در عوض mysql موتور ذخیره سازی ای به نام memory ( MySQL :: MySQL 5.5 Reference Manual :: 15.4 The MEMORY Storage Engine) داره که تمام داده های جدول رو روی حافظه بارگذاری می کنه!
تنظیمات mysql در فایلی به نام my.cnf ذخیره میشه که شما میتونید به سادگی حداکثر میزان حافظه ای که mysql اجازه استفاده از اون رو داره مشخص کنید. میتونید سقف میزان کش کردن برای هم thread یا query رو هم مشخص کنید. میتونید زمانی که یک query در حافظه میتونه بمونه رو مشخص کنید و همچنین شما توانایی این رو دارید که برای query یا thread ها اولویت در کش شدن مشخص کنید!
همچنین علاوه بر مواردی که عرض کردم، در این صفحه میتونید مشاهده بفرمایید که mssql قابلیت Unique Query Cache رو هم نداره:MySQL :: Why Move to MySQL from Microsoft SQL Server?
اگر علاقه داشته باشید این یکی از جامع ترین مقایسه بین سرور های پایگاه داده هست:Comparison of different SQL implementations
در رابطه با فرمایشتون در مورد متغیر ها در php هم با توجه به اینکه بحث گسترده و مفصلی هست، یک نکته کوتاه رو خدمتتون عرض می کنم:
پاسخ فرمایش شما، در واقع در متن خودتون موجود بود!
فرمودید که "اما اگر شما در ASP.NET چنین حرکتی را انجام دهید برنامه از شما خطا گرفته و Compile نخواهد شد!!!
"
خب طبیعیه که وقتی شما برنامه ای رو کامپایل می کنید، به هر متغیر تنها میتونید یک حالت نسبت بدید. چون برنامه شما یکباره کامپایل میشه، نمیتونید نوع متغیر رو تغییر بدید.
اما داستان تو PHP و کلا زبان های برنامه نویسی تفسیری فرق می کنه. فرض کنید در خط اول برنامه شما به متغیر x، مقدار عددی نسبت میدید. خط اول برنامه توسط interperter تفسیر میشه و دستورات مربوط انجام میشن. در خط دهم برنامه مجددا شما به متغیر x مقدار میدید، اما این بار مقدار رو به صورت رشته انتخاب می کنید. مفسر(interperter) متغیر قبلی رو unset می کنه و متغیر جدید رو ست میکنه. در واقع از شما برتری PHP نسبت به ASP، به عنوان یک عیب و یک نقص یاد کردید
در پایان دو تا لینک خدمتتون میدم، در رابطه با مدیریت حافظه در PHP هستن که اتفاقا PHP یکی از قدرتمند ترین زبان های برنامه نویسی تو این زمینه هست!
PHP: Basic memory management - Manual
Henry @ Web Apps: understanding PHP memory management
ارادتمند