آژانس هواپیمایی
pop up

سریع کردن اجرای اسکریپت php و mysql

شروع موضوع توسط bishtar ‏5 سپتامبر 2007 در انجمن MySQL

  1. bishtar

    bishtar کاربر تازه وارد

    تاریخ عضویت:
    ‏3 ژوئن 2007
    نوشته ها:
    211
    تشکر شده:
    3
    محل سکونت:
    هرکجا بغیر از اینجا
    اگر این تاپیک تکراری هست ببخشید (گشتم ولی مورد مشابه پیدا نشد)

    راستش مشکلی برایم ایجاد شده و اینکه وقتی تعداد فیلدها بیش از 20 تا و رکوردهای بانک اطلاعاتی mysql میره رو مرز 500 و 600 هزارتا سرعت بازیابی اطلاعات بسیار کند میشه نمی دونم واقعا راهی برای حل این مشکل هست یا نه.
    فعلا اسکریپت من با php و mysql هست . و اینکه واسه اسکریپت php هم راهی برای افزایش سرعت هست یا نه.
    این مسئله بسیار برای من حیاتی شده دوستانی که تجربه کار با بانکهای اطلاعاتی پر فیلد و رکورد را دارند لطفا کمک کنند..(در هر نوبت بیش از 100 رکورد فراخوانی می شود)
    کوری که دارم حدود 30 خط است و با تعداد زیادی تیبل برای بازیابی اطلاعات و کنترل شرایط سروکار دارد.
    درضمن آیا میشه با استفاده از اسکریپت تنظیمات فایل my.ini سرور mysql رو تغییر داد یا حتما باید با شل انجام بشه.
     
  2. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    اگه روی بهینه سازی کدهات کار کنی بهتر جواب میگیری !
    میشه کوئریت رو بنویسی اینجا؟ :blink:
     
  3. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    البته استفاده از Zend Optimizer هم به سریعتر اجرا شدن صفحات خیلی کمک میکنه. اما خوب تاثیری تو کوئری و ارتباط با mysql نداره.
     
  4. alik

    alik کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏23 سپتامبر 2005
    نوشته ها:
    2,147
    تشکر شده:
    1,226
    موارد زیر را میتوانید انجام بدهید درصورت تمایل می توانید هزینه کنید انجام بدم :

    1 - بهینه سازی ساختار دیتابیس (نرمال سازی)
    1.5- تغییر ساختار در صورت نیاز
    2 - بهینه سازی کوئری ها
    3 - آنالیز کوئری های خروجی از برنامه

    هزینه اش هم بستگی به میزان وقت گیر بودن تحلیل ها داره ...
     
  5. ODE112

    ODE112 کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏24 مارس 2006
    نوشته ها:
    1,380
    تشکر شده:
    1,269
    محل سکونت:
    aquarium
    شاهد فکر نمیکنم کمکی بهش بکنه! چون زمان اتصال به دیتاباسش طولانی هست و این ربطی به کدهای php نباید داشته باشه...

    شما باید روی نوع تیبل های دیتاباست دقت بیشتری بکنی!!! نوعشون! طولشون! ایندکس قرار دادن کوتاهترین فیلدت برای هر تیبل و از این دست...
     
  6. peymanafraz

    peymanafraz کاربر تازه وارد

    تاریخ عضویت:
    ‏28 دسامبر 2005
    نوشته ها:
    135
    تشکر شده:
    0
    محل سکونت:
    $strHome
    دوست عزیز اگه سرعت اجرای کدها و اتصال به دیتابیس پایین هست باید روی کدهاتون کار کنید ولی اگه فقط دیتابیس زیاد ططول میده تا رکوردها رو بده و جواب کوئری رو برگردونه بطور حتم دیتابیستون نرمال و اصولی نیست. میتونین قواعد طراحی دیتابیس رو بخونین و دیتابیستون رو نرمال طراحی کنین. البته میتونین با تعریف Index روی فیلدهایی که زیاد بهشون نیاز دارین سرعت رو تا میزان زیادی بالا ببرین.
     
  7. boxilink
  8. bishtar

    bishtar کاربر تازه وارد

    تاریخ عضویت:
    ‏3 ژوئن 2007
    نوشته ها:
    211
    تشکر شده:
    3
    محل سکونت:
    هرکجا بغیر از اینجا
    مطالب خیلی زیادی راجع به اپتیمایز کردن کد php و mysql وجود نداره و راه استاندارد مشخصی من ندیدم. یسری نکات هست که تقریبا عمومی هست و گفته شده.
    یسری مطلب هم راجع به تنظیمات mysql هست که بار cpu و حافظه و ... با کش کردن کم کنیم و در مورد php هم اصلاحات کد نویسی مخصوصا در مصرف حافظه و ... است.

    مطلب دیگری که من به اون توجه نکردم ساختار قالب html هست که چند مقاله جالب دیدم که با کمی تغییر در کد زمان نمایش اطلاعات خیلی تفاوت نمی کرد ولی کیفیت نمایش فوق العاده فرق داشت. مثلا یک صفحه زمان بار گذاریش 20 ثانیه بود با اجرای اسکریپت تقریبا تا زمان 15 ثانیه صفحه خالی بود و یکدفعه اطلاعات ظاهر می شد و تا5 ثانیه بعد صفحه کامل می شد. با اعمال تغییر در کدهای html صفحه از زمان 5 ثانیه نمایش داده میشد تا 20- 18 ثانیه که اطلاعات تکمیل می شد. (برای من خیلی جالب بود)

    بازهم اگر دوستان در زمینه بانک اطلاعاتی سنگین تجربه دارند لطفا راهنمایی کنند.
     
  9. mirzaee37

    mirzaee37 کاربر تازه وارد

    تاریخ عضویت:
    ‏10 فوریه 2008
    نوشته ها:
    61
    تشکر شده:
    0
    محل سکونت:
    Iran/Canada
    نمیشه همه چیز رو انداخت گردن تعداد query زیاد گرفتن . دیتابیس های بزرگ روی سرورهای اشتراکی خوب جواب نمیدن و اگر سرور اختصاصی داری تنظیمات php و mysql رو حتما چک کن . اما به احتمال زیاد مشکل شما از طراحی دیتابیس است . شاید با ساخت یک table جدید دیگه نیازی به خیلی از proccess های اضافی در php و query های چند خطی نباشه .
     
  10. smhnaji

    smhnaji کاربر تازه وارد

    تاریخ عضویت:
    ‏24 ژوئن 2008
    نوشته ها:
    2
    تشکر شده:
    0
    آقا/خانم bishtar میدونی که نمیشه دقیق به این سوال جواب داد

    اما من فکر می کنم حرفی که mirzaei37 زد قابل تامل هستش. حتما یه مروری روی table هات بکن.

    دیگه این که یکی از اون کوئری هایی رو که میگی توی phpMyAdmin تست کن ببین چند ثانیه طول می کشه. (میشه اینجوری فهمید که چقدر مشکل از کوئریت هست و چقدر مشکل از load شدن صفحه و کد php و احتمالا javascript)

    و یه چیز دیگه این که اگه از MySQL 5.x داری، از Stored Procedure ها استفاده کن.

    موفق باشی
     
  11. behzadfu2

    behzadfu2 کاربر تازه وارد

    تاریخ عضویت:
    ‏9 فوریه 2008
    نوشته ها:
    5
    تشکر شده:
    0
    اولا باید تعداد query هاتو کم کنی مسلما 600 تا مورد قبول نیست. استانداردش تا 20 تاست
    پس اول یه تجدید نظر تو Query ها بکن
    دوما در مواردی که به تعداد مشخصی داده نیاز داری از limit استفاده کن
    سوما اگه به ستون جدول میخوای دسترسی داشته باشی به جای * نام ستونهاتو بذار
    SELECT name FROM USER WHERE id='ali' limit 1