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

نام تاپیک: مشکل کوئری و سرعت لود

  1. #1
    کاربر دائمی آواتار wallfa
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    همدان
    پست
    414

    مشکل کوئری و سرعت لود

    با سلام و عرض ادب

    من یک سیستم خبری نوشتم که حدودا 5000 هزار تایی آی پی بازدید میرسه کلا سایت قفل میکنه . چه راه حل هایی هست که من بتونم سیستم بهینه کنم .
    ناگفته نمونه بر پایه فریم ورک لاراول هستش .

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

    نقل قول: مشکل کوئری و سرعت لود

    لاراول دیباگر رو نصب کن
    https://github.com/barryvdh/laravel-debugbar
    وقتی صفحه اجرا میشه کوئری هات رو بهت خروجی میده با زمان اجراشون رو
    ببین کدومشون طول میکشه یا کدومشون اضافیه و میشه بجای چندین درخواست با یک درخواست دریافتشون کرد
    اصلاحشون کن
    اگه از رابطه ها استفاده میکنی حتما از EAGER LOADING استفاده کن تا تعداد کانکشن های دیتابیس بیاد پایین

  3. #3
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: مشکل کوئری و سرعت لود

    البته که باید query ها را بررسی کنی و بهینه سازی روی پایگاه داده و query را به درستی انجام بدی ! اما به نظرم باید سعی کنی اطلاعات را cache کنی و هر بار نری از پایگاه بخونی.

  4. #4
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: مشکل کوئری و سرعت لود

    نقل قول نوشته شده توسط Unique مشاهده تاپیک
    البته که باید query ها را بررسی کنی و بهینه سازی روی پایگاه داده و query را به درستی انجام بدی ! اما به نظرم باید سعی کنی اطلاعات را cache کنی و هر بار نری از پایگاه بخونی.
    سلام برادر . خوبی
    آقا من یه کد sql دارم که بهینه نیست و در هاست جواب نمیده چون چند تا مقدار میفرسته . امکانش هست راهنماییم کنید :

    $sql="select `group_sub` from `tbl_amlak` where 
    `group_sub` <> (select `group_sub` from `tbl_amlak` where `group_sub` like '%ویلا%' ) and
    `group_sub` <> (select `group_sub` from `tbl_amlak` where `group_sub` like '%آپارتمان%') and
    `group_sub` <> (select `group_sub` from `tbl_amlak` where `group_sub` like '%زمین%')
    GROUP BY `group_sub` DESC ";


    میگم اگر فیلد group_sub مخالف ویلا و آپارتمان و زمین بود بیا نمایش بده
    آخرین ویرایش به وسیله رضا قربانی : سه شنبه 19 بهمن 1395 در 18:35 عصر

  5. #5
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: مشکل کوئری و سرعت لود

    group_sub را کاربر خودش پر میکنه ؟! که از like استفاده میکنی !؟ اگه اینطوریه که اصلا بهینه نیست و بهتره توی tbl_amlak یک فیلد tinyint بگذاری مثلا group_type و برای ویلا و آپارتمان و زمین ... بک متناظر گذاری و مثلا اگه متناظر اینها ۱ و ۲ و ۳ باشه بنویسی :
    select group_sub from tbl_amlak where group_type not in (1,2,3) group by group_sub

    اگه مشکل داری برای ویرایش کد و فرم ها و این چیزا به نظرم یک اسکریپت بنویس و اول کل جدول را معادل group_type بکن و بعدش trigger بگذار روی حدول تا بر اساس group_sub بیاد مقدار group_type را ست کنه ! البته میتونی روی یک جدول دیگه trigger بگذاری و اسکریپت راننویسی و از این جدول توی جدیده Insert کنی و تمام.

    اگه هم خیلی دلت میخواد با همون فیلد بهین هتر تشخیص بدی که قطعا مثل حالت بالایی نمیشه ! میتونی یک function بنویسی که مقدار group_sub را بگیره و بعدش با SUBSTR بیای چک کنی و مقدار برگشتی از Function را توی اسکریپت فیلتر کنی اینطوری :
    select group_sub from tbl_amlak where func_filter(group_sub) not in (1,2,3) group by group_sub

    توی این حالت هم بر اساس SUBSTR تابع func_filter میاد یک عدد متناظر بر میگردونه.

  6. #6
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: مشکل کوئری و سرعت لود

    group_sub را کاربر خودش پر میکنه ؟! که از like استفاده میکنی !؟
    بله کاربر خودش پر میکنه به همین خاطر حتما باید از like استفاده کنم . باید بهش بگم توی فیلد جستجو کن و اگر ویلا و آپارتمان و زمین داخل فیلد بود بهم نمایش نده .
    روش بالا مقدور نیست .

    جالب اینجاست که در لوکال کد من کار میکنه و درست جواب میگیرم ولی در هاست نه :/

    دقیقا برعکس جستجوعه . در جستجو میگیم اگر اینا بود بیا نمایش بده . ما در اینجا میگیم اگر ویلا و آپارتمان و زمین بود نمایش نده !!!

  7. #7
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: مشکل کوئری و سرعت لود

    حتی اینم نوشتم روی لوکال داره جواب میده اما تو هاست آپ میکنم نه !!!


    $sql="select `group_sub` from `tbl_amlak` where 

    `group_sub` like '%ویلا%' = (select `group_sub` from `tbl_amlak` where `group_sub` like '%ویلا%' ) and

    `group_sub` like '%آپارتمان%' = (select `group_sub` from `tbl_amlak` where `group_sub` like '%آپارتمان%') and

    `group_sub` like '%زمین%' = (select `group_sub` from `tbl_amlak` where `group_sub` like '%زمین%')

    GROUP BY `group_sub` DESC ";

  8. #8
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: مشکل کوئری و سرعت لود

    من سه تا راه حل گفتم ! مورد سوم که استفاده از function بود از روش شما خیلی خیلی خیلی بهینه تره و سرعتش بیشتره. گرچخ راه حل دوم هم به نظرم کاملا شدنیه ! یعنی با یک trigger گذاشتن توی هر Insert خودت مقدار group_type را ست میکنی و توی کد هم دست نمیبری ! مابقی هم یکبار از یک جدول به جدول جدید insert into new table select from old table با trigger میگیری و تمام ! سرعت query شما مثل سرعت نور میشه عزیز !

  9. #9
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: مشکل کوئری و سرعت لود

    مورد سوم که استفاده از function بود از روش شما خیلی خیلی خیلی بهینه تره و سرعتش بیشتره
    من تا حالا با مورد سوم شما کار نکردم . امکانش هست با مقادیر بالا برام بنویسید ؟

  10. #10
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: مشکل کوئری و سرعت لود

    ....up... گیر کردم

  11. #11
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: مشکل کوئری و سرعت لود

    خدایی خیلی سرم شلوغه اما توی چند روز آینده توی وبلاگم حتما پست میگذارم وتوضیح میدم چطور از function ها توی mysql استفاده کنیم.

  12. #12
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: مشکل کوئری و سرعت لود

    خدایی خیلی سرم شلوغه اما توی چند روز آینده توی وبلاگم حتما پست میگذارم وتوضیح میدم چطور از function ها توی mysql استفاده کنیم.
    SELECT `group_sub` FROM `tbl_amlak` WHERE
    (`group_sub` NOT LIKE '%ویلا%' ) AND
    (`group_sub` NOT LIKE '%آپارتمان%') AND
    (`group_sub` NOT LIKE '%زمین%')
    GROUP BY `group_sub` DESC


    به همین راحتی درست شد .

  13. #13
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: مشکل کوئری و سرعت لود

    ولی اصلا بهینه نیست ! روش function را گذاشتم خبر میدم تست کنی.

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

  1. سوال: مشکل اسکریپت های جی کوئری سایت بعد لود مطالب بیشتر با ajax
    نوشته شده توسط ali.monje در بخش jQuery
    پاسخ: 4
    آخرین پست: یک شنبه 26 مرداد 1393, 09:40 صبح
  2. مشکل: کوئری گرفتن از فیلد Date/Time
    نوشته شده توسط mo5tafa در بخش T-SQL
    پاسخ: 2
    آخرین پست: جمعه 27 بهمن 1391, 15:10 عصر
  3. پاسخ: 5
    آخرین پست: جمعه 25 آذر 1390, 15:10 عصر
  4. مشكل كوئري فارسي
    نوشته شده توسط alirezas در بخش PHP
    پاسخ: 5
    آخرین پست: سه شنبه 23 آذر 1389, 19:11 عصر
  5. سوال: مشکل کوئری
    نوشته شده توسط danijoon در بخش SQL Server
    پاسخ: 4
    آخرین پست: یک شنبه 28 شهریور 1389, 11:45 صبح

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

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