نمایش نتایج 1 تا 7 از 7

نام تاپیک: درخواست های زیاد از سرور و دیتابیس

  1. #1

    درخواست های زیاد از سرور و دیتابیس

    سلام دوستان
    من هر صفحه ای رو که لود میکنم یکسری دیتا رو از دیتا بیس میخونم و میفرستم به این صفحه یعنی با هر بار رفرش صفحه چند فانکشن اجرا میشه و ممکنه مثلا 10 چند کوئری یا یک کوئری به SQL Server زده بشه که فکر میکنم این روش درستی نباشه چون میزان درخواستها به سرور خیلی زیاد میشه
    آیا راهی برای رفع این مشکل هستش؟

    من الان view ها رو اینطوری لود میکنم

        function index()


    {
    $this->General_model->online_users_counter();

    $data = array (

    'title'=>'سامانه ',
    'message_num'=> $this->General_model->message_num(),
    'san_num'=> $this->General_model->san_num(),
    'rejected_num'=> $this->General_model->rejected_num()
    );
    $this->template->load('dashboard/index', $data);
    }

    من نتونستم اینطوری لود کنم

    <?php




    class Page extends CI_Controller {


    function index()
    {
    $data['page_title'] = 'Your title';
    $this->load->view('header');
    $this->load->view('menu');
    $this->load->view('content', $data);
    $this->load->view('footer');
    }


    }
    ?>


    در ضمن من view دارم اما view هارو لود نمیکنم یعنی به این صورت عمل میکنم

  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: درخواست های زیاد از سرور و دیتابیس

    اگه نیازه واقعا اون توابع و کوئری ها اجرا بشن پس باید اجرا بشن در هر درخواست
    اگه غیر بهینه یا بد نوشته باشیشون مسئله دیگست

    شما اگه profilerرو فعال کنی بعد از لود شدن صفحه میتونی آمار عملکرد کوئری ها رو ببینی که چیا اجرا شدن و هرکدوم چقد طول کشیده
    اگر کوئری تکرار شونده یا سنگین/کند داری باید اصلاحش کنی

    وگرنه کوئری های لازم باید اجرا بشن در هر رفرش

  3. #3
    کاربر جدید
    تاریخ عضویت
    بهمن 1395
    محل زندگی
    خارج از ایران
    پست
    17

    نقل قول: درخواست های زیاد از سرور و دیتابیس

    دوست من تمام دیتابیس های SQL بیس توی maximum connection per second میپکن پس زمانی که داری باهاشون کار میکنی باید سعی کنی که تمام درخواست ها رو توی یه کانکشن باز انجام بدی
    برای این مشکل ریفرش شدن پیج که ریکوعست ها ارسال میشن با هر بار بازدید کاربر بهتره از memcached استفاده کنی
    به این صورت که query های insert , delete, update, رو مستقیم بدی به دیتابیس و select ها رو که قبلا کش کردی توی memcached بیای مستقیم از memcached بخونی

  4. #4

    نقل قول: درخواست های زیاد از سرور و دیتابیس

    نقل قول نوشته شده توسط ermya_ مشاهده تاپیک
    دوست من تمام دیتابیس های SQL بیس توی maximum connection per second میپکن پس زمانی که داری باهاشون کار میکنی باید سعی کنی که تمام درخواست ها رو توی یه کانکشن باز انجام بدی
    برای این مشکل ریفرش شدن پیج که ریکوعست ها ارسال میشن با هر بار بازدید کاربر بهتره از memcached استفاده کنی
    به این صورت که query های insert , delete, update, رو مستقیم بدی به دیتابیس و select ها رو که قبلا کش کردی توی memcached بیای مستقیم از memcached بخونی

    تشکر دوست عزیزم لطف کردین
    اما 2 تا سوال داش
    1- الان فرض کنید وقتی که صفحات رفرش میشه مثلا فرض کنید تعداد کارهای باقی مانده رو به کاربر نشون میدم (یعنی تو هر رفرش ممکنه مقدارش تغیر کنه) که این توسط select انجام میشه آیا این هم با memcashed میشه انجام داد؟ یا اینکه وقتی یک کار رو برای انجام باز میکنه موارد مختلفی از دیتابیس select زده میشه البته من این هارو تو یک select گذاشتم که نتایج رو با یک آرایه به view میفرستم
    2- این memcashed رو چطوری میتونم اجرا کنم؟ چون توی User Guide خود Codeigniter نبود

  5. #5
    کاربر جدید
    تاریخ عضویت
    بهمن 1395
    محل زندگی
    خارج از ایران
    پست
    17

    نقل قول: درخواست های زیاد از سرور و دیتابیس

    خواهش

    خوب این دیتابیس یک جایی آپدیت میشه تیبل هاش دیگه ؟ درسته ؟
    مثلا فکر کن یه یوزری یه کاری میکنه که باید دیتا بیس آپ دیت بشه شما هم زمان هم دیتابیس رو آپ دیت می کنی هم memcached رو بعد که میخوای کوعری سلکت برنی به دیتابیس همون اطلاعات رو از memcached بگیر چون قبلاً اون رو هم آپ دیت کرده بودی

    کلا codeigniter خیلی باحاله زیاد سخت نمیگیره هر کاری میتونی باهاش انجام بدی

    برای کار با memcached اول باید اون رو نصب کنی روی سرور


    • Ubuntu : sudo apt-get install memcached
    • Gentoo : sudo emerge install memcached
    • Redhat : sudo yum install memcached


    بعد باید extention پی اچ پی رو نصب کنی که راحت ترین روش با استفاده از PECL هست

    sudo pecl install memcache




    بعد باید apache رو ریستارت کنی یا اگه php رو به صورت fast cgi نصب کردی از مسیر etc/usr/bin بری و سرویسش رو ریستارت کنی که تغییرات اعمال بشه

    حالا توی کد خیلی راحت بهش وصل میشی و دیتا رو set و get میکنی

    اینجا یه مثال هست به همراه فایل controller و library

    https://github.com/tomschlick/memcached-library

  6. #6

    نقل قول: درخواست های زیاد از سرور و دیتابیس

    ممنونم دوست عزیزم اما من از Windows Server استفاده می کنم

  7. #7
    کاربر جدید
    تاریخ عضویت
    بهمن 1395
    محل زندگی
    خارج از ایران
    پست
    17

    نقل قول: درخواست های زیاد از سرور و دیتابیس

    دوست من اولا که ویندوز کلا برای کاربر های عادی نوشته شده و ورژن سرورش هم فقط برای کار های کوچیک هست

    بکار بردن php روی سیستم عامل ویندوز و اونم کنار IIS فقط واسه کارای تحقیقاتی هست

    ولی من شدیداً توصیه میکنم از لحاظ مساعل امنیتی به هیچ وجه از ویندوز برای پروژه های تجاری استفاده نکنید و همچنین از لینوکس ها با کرنل debian
    برای کار تجاری امن ترین و استیبل ترین OS سیستم عامل های مبتنی بر کرنل redhat هست نظیر centos

    ولی اگه اصرار به این کار دارید میتونین به این شکل memcached رو روی ویندوز نصب کنید

    اول فایل متناسب با نسخه ویندوزتون رو از اینجا دانلود کنید

    http://downloads.northscale.com/memc...2-1.4.4-14.zip
    http://downloads.northscale.com/memc...4-1.4.4-14.zip

    بعد توی درایو C ویندوزتون extract کنیدش
    و سپس از طریق cmd
    با این دستور نصبش کنید
    c:\memcached\memcached.exe -d install

    و با این دستور استارت یا استپش کنید

    c:\memcached\memcached.exe -d start
    c:\memcached\memcached.exe -d stop

    و همچنین از طریق registery در این مسیر

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\memcached

    میتونید مقدار حافظه تخصیص داده شده به memcached رو کم یا زیاد کنید

    این لاین رو در رجیستری باید ادیت کنید
    "c:\memcached\memcached.exe" -d runservice -m 512


    و از اونجایی که dll مربوط به memcached برای php بر روی نسخه ویندوز موجود نیست میتونید برای اتصال از این شبیه ساز استفاده کنید

    https://github.com/fwolf/memcached-client

    آخرین ویرایش به وسیله ermya_ : چهارشنبه 06 بهمن 1395 در 13:36 عصر

تاپیک های مشابه

  1. ذخیره ستون های خاصی از دیتاتیبل در دیتابیس
    نوشته شده توسط nafisehk در بخش C#‎‎
    پاسخ: 14
    آخرین پست: شنبه 13 مهر 1392, 00:03 صبح
  2. سوال: به روز رسانی برنامه های کلاینت از سرور
    نوشته شده توسط ozzy_mra در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 02 دی 1391, 13:25 عصر
  3. انتقال اطلاعات بسیار زیاد از سرور به سرور دیگر به طور مداوم
    نوشته شده توسط علی اکبر در بخش تحلیل و طراحی بانک اطلاعات
    پاسخ: 7
    آخرین پست: سه شنبه 19 اردیبهشت 1391, 17:39 عصر
  4. Custom Errors و درخواست های غیر از aspx
    نوشته شده توسط dorparasti در بخش ASP.NET Web Forms
    پاسخ: 11
    آخرین پست: چهارشنبه 28 دی 1390, 16:49 عصر
  5. سوال: دریافت درخواست GET تنها از سرور خاص
    نوشته شده توسط mehdisat2000 در بخش PHP
    پاسخ: 1
    آخرین پست: جمعه 28 مرداد 1390, 06:23 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •