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

نام تاپیک: افزایش سرعت اجرای SELECT بصورت تصادفی (Random)

  1. #1

    افزایش سرعت اجرای SELECT بصورت تصادفی (Random)

    از کوئری زیر برای انتخاب سطری (بصورت تصادفی) از جدولی که 12000 رکورد دارد استفاده میکنم.

    SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1;
    اما زمانی که برای اجرای این کوئری لازم هست حدود 2 ثانیه هست. آیا میتوانم این کوئری را برای افزایش سرعت بهینه کنم؟!

  2. #2

    نقل قول: افزایش سرعت اجرای SELECT بصورت تصادفی (Random)

    همه فیلد های رکوردت رو لازم داری که از * استفاده کردی؟
    اگه همش لازم نیست فقط فیلد هات رو بنویس

  3. #3

    نقل قول: افزایش سرعت اجرای SELECT بصورت تصادفی (Random)

    استفاده کردن یا نکردن از * در این کوئری در سرعت اون تاثیر زیادی نداره. در واقع نکته چالش برانگیز ، RAND هست.

  4. #4
    کاربر دائمی آواتار taknegaar
    تاریخ عضویت
    تیر 1387
    محل زندگی
    تهران
    پست
    528

    نقل قول: افزایش سرعت اجرای SELECT بصورت تصادفی (Random)



    SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM `table`;

    بعد

    SELECT * FROM `table` LIMIT $offset, 1;


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

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