PDA

View Full Version : حرفه ای: آيا يك پرس و جو به سرور فشار مياره ؟



king-net
جمعه 19 فروردین 1390, 19:18 عصر
دوستان من ميخوام بدونم كه من اگه به طور همزمان 10 پرس و جو بفرستم به پايگاه داده براي يافت نتيجه مناسب ميان بر فرض 100.000 تا نتيجه آيا اين كار به سرور فشار مياره يا نه؟

eshpilen
جمعه 19 فروردین 1390, 19:37 عصر
حالا فشار بیاره. خب امتحان کن. نترس حقوق بشر نمیاد محکومت کنه. آخه سرور که آدم نیست :قهقهه:
ببینید یه قاعدهء کلی در بهینه سازی هست. اینکه شما برنامه رو بر اساس خوانایی و انعطاف و سادگی مینویسی و اصلا به بهینه سازیهای جزیی و اونایی که واقعا معلوم نیست درحد مشکل ساز باشن فکر نمیکنی، بعد اگر عملا به مشکل پرفورمنس برخوردی اون موقع شروع میکنی به چاره اندیشی و بهینه سازی. فکر هم نکن به این روش بهینه سازی و تغییر خیلی سخت میشه. ضمنا از هر چند بار فقط یک بار مجبور به این کار میشی و وقت و انرژی و پارامترهای خوانایی و سادگی و امنیت برنامه رو در چند مورد دیگه برای خودت حفظ میکنی.
البته اینا که گفتم به شرطی هست که طرف اصلا بلد باشه الگوریتم درست و حسابی و منطقی بنویسه و دیده شدن اینطور چیزها در کدش بخاطر درپیت بودن طراحیش نباشه!! البته ببخشیدا منظورم به شما نیست، کلی میگم.
بقول بعضی برنامه نویسان حرفه ای مشهور، اغلب ساده ترین روش بهترین روش است.

king-net
جمعه 19 فروردین 1390, 20:16 عصر
نه عزيز من برام خيلي مهمه كه فشار نياره رو سرور حالا مي خوام بدونم اين روش فشار وارد مي كنه يا نه؟

eshpilen
جمعه 19 فروردین 1390, 21:56 عصر
آخه فشارش به قدرت و بار سرور هم بستگی داره!
منظورت از فشار چی هست دقیقا؟
فشار یه کلمهء نسبتا کلی و مبهمی هست.
اگر سرور اونقدری منابع بیکار داشته باشه که مشکلی در کارش ایجاد نشه پس میشه گفت فشار مهم نیست، گرچه کوئری شما سنگین باشه.
یه سرور دیگه ممکنه بار و ترافیک زیادی داشته باشه یا ضعیف تر باشه و پردازش شما در کارش مشکل ایجاد کنه.
همونطور که گفتم نهایتا خیلی جاها عملا معلوم میشه. از قبل چطور میشه مطمئن بود؟ چون این امر به پارامترهای متعددی بستگی داره که همش دست ما نیست و از همش اطلاع نداریم.
ضمنا کد دقیقش رو باید بررسی کرد. دقیقا کوئریش چطوری هست. حجم داده های بررسی شده چطوریه. از ایندکس استفاده میشه و بهینه سازیهای قوی خودکار توسط انجین دیتابیس روش قابل انجام هست و غیره.
و اینکه کوئری شما مثلا با فاصله های زمانی کم و مداوما اجرا میشه مثلا یا مثلا فقط یک دهم اوقات و غیره. یه پردازش سنگین که فقط برای مدت کوتاهی و با فواصل زمانی طولانی تر باشه میتونه قابل قبول باشه، چون اختلال مهمی در کارکرد بقیهء برنامه ها و سایتها ایجاد نمیکنه.
بخاطر همین تعدد پارامترهای درگیر و مشکل بودن پیشبینی بعضی از اونها و پیچیدگی محاسبهء برآیند اینها هست که این اندازه گیری ها خیلی وقتا عملا و بصورت تجربی باید مشخص بشه. یعنی به این روش خیلی به صرفه تر و کم خطاتر هست.

بعدم بنده نمیدونم چرا بعضیا میان میگن این برام خیلی مهمه. واسه چی اینقدر حساس شدید؟ دقیقا برای چی بنظرتون خیلی مهمه؟ قبلا به مشکلی برخورد کردید؟ مثلا ادمین سرور باهاتون تماس گرفته و چیزی گفته؟ قضیه چیه خلاصه.

king-net
شنبه 20 فروردین 1390, 01:15 صبح
چون سرور برا خودمه اگه زياد بهش فشار بياد سرور ميخوابه و كوئريم هم اينطوريه كه ده تا پارامتر بهش ميدي اين ميگرده از بين n تا پست كه آيا اين ده تا توش هست يا نه و براي اجراي اسكريپت cron job استفاده كنم يعني مثلا هر يه ساعت يه بار اجرا بشه منم ميخوام بدونم روش بهينه چيه.

king-net
شنبه 20 فروردین 1390, 19:23 عصر
كسي نميدونه كارم فوريه :گریه:

mtchabok
شنبه 20 فروردین 1390, 20:16 عصر
روش بهینه این هس که اول جدولتون رو بهینه ایجاد کنید ، یعنی هی برای هر کاری مجبور به استفاده از like در درخواستهاتون نباشید .
اگه هم مجبور بودید برای خودتون یه کش درست کنید و اطلاعات یافت شده رو درش قرار بدین با اینکار خیلی توان و سرعت سایتتون بالا میره .
همونطوریکه خودتونم گفتید از cron job میشه استفاده کرد و درخواستها رو طی فواصل زمانی مشخص فرستاد .
یه راه دیگه هم این هس که کنترل ترافیک انجام بدید و مواقعی که ترافیک بالایی ندارید درخواستهای خودتون رو بفرستید .
این روشهایی بود که به ذهنم رسید . موفق باشید .