PDA

View Full Version : تاثیر داشتن دو کانکشن واسه دیتابیس



H:Shojaei
یک شنبه 30 خرداد 1395, 16:04 عصر
سلام...
اگر واسه دیتابیس دو تا کانکشن ایجاد بشه و وقتی یکی در حال انجام کاری هست هنگ کنه کانشکن دوم میتونه به کارش ادامه بده!؟

مهرداد سیف زاده
یک شنبه 30 خرداد 1395, 19:57 عصر
هنگ کردن میتونه در سطوح مختلف باشه
در core دیتابیس: هر دو کانکشن دچار مشکل میشه
دیسک خراب بشه و هنگ کنه: بسته به کانفیگ و نوع دیتابیس و معمولا میتونه هر دو کانکشن رو دچار مشکل کنه
درایور ارتباطی دچار مشکل بشه: امکان ادامه دادن کانکشن کانکشن دوم بالاست. ولی معمولا درایورها یه قسمت مرکزی دارن که روی پورت شبکه محلی یا unix socket داره کار میکنه و حتی میتونه هر دو کانکشن رو خراب کنه
خرابی و هنگ کردن روی دیتابیس: اگر دو کانکشن، دو دیتابیس مختلف رو باز کرده باشن، او وقت امکان ادامه داشتن کانکشن دوم بالاست

در آخر نگهداری و بهره برداری از هر نوع دیتابیسی به نوع کانفیگ سرور و دیتابیس برمیگرده. در زمینه هایی که داده ها حساسیت بسیار بالایی دارن و کار enterprise هست، اوراکل میتونه مفید باشه.

H:Shojaei
یک شنبه 30 خرداد 1395, 21:55 عصر
حالا اگر مثلا کاری که داره انجام میشه فرضا روی ۱۰ میلیون رکورد باشه و طول بکشه اون وقت چی کانشکن دوم هنگامی که کانکشن اول در جال اجراست میتونه کارشو به درستی انجام بده!؟ اینجا کانشکن دوم تاثیر گذار بر بالا بردن سرعت هست یا نه!؟

مهرداد سیف زاده
یک شنبه 30 خرداد 1395, 22:11 عصر
گرفتن رکوردهای بیشتر، یعنی ذخیره فعلی در بافر و برداشت از بافر. معمولا مصرف ram و cpu در واکشی رکوردهای بیشتر کاهش پیدا میکنه. در اوراکل ویژگی هست بنام cpu per query که شما یه دستور بسیار سنگین میزنی و در همون دستور مشخص میکنی که مصرف cpu چقدر باشه. ولی درایورهای دیتابیس ها یه حد تعادلی رو در نظر میگیرن که اگر دستور سنگینی اومد اون وقت جا برای کانکشن دوم باشه. ولی اگر دستور اول بسیار سنگین باشه(مخصوصا در mysql) اون وقت کلا سیستم میخوابه چه برسه به دستور دوم. این مورد رو خودم داشتم، وقتی کاربری query میزد اون وقت چنان سیستم میخوابید که حتی ssh هم به سختی کار میکرد چه برسه به mysql.
تکنیکهای برنامه نویسی رو باید برای برنامه نویسی بهتر بکار گرفت. مثلا دیتای رو به اندازه ای که نیاز دارید استخراج کنید و باهاش کار کنید.

H:Shojaei
یک شنبه 30 خرداد 1395, 22:55 عصر
خوب ما تست گرفتیم... یه سلکت سنگین زدیم که سیستم کلا هنگید یعنی تبی که داشت سلکت رو اجرا میکرد و مرورگر کلا هنگید با یه مرورگر دیگه همون دیتابیس رو باز کردیم و یه سلکت آپدیت اینسرت انجام دادیم انگار نه انگار که طوری شده! کوئری های دیگه از این کانشکن کلا کار میکرد و اون یکی هم در حال پردازش همچنان... واسه همین واسم سوال شد تو سرور هم همینطوری میتونه باشه! اگر این درست باشه بهتره که چون معمولا درخوواست هایی که با کرون انجام میشه اکثرا با حجم دیتای زیاد سرو کار دارن رو بدیم به یه کانکشن دیگه انجام بده تا اگر مثلا وسط روز و تو اوج ترافیک هم کرون قرار بود اجرا بشه با کانکشنی که کاربرا دارن ازش استفاده میکنن یکی نباشه و اختلال و کندی پیش نیاد...