/
  • جایگزین برای GROUP BY

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی جایگزین برای GROUP BY
    نویسنده پیام
    voltan آفلاین
    حسین عزیزآبادی
    ****

    ارسال‌ها: 309
    تاریخ عضویت: ۱۳۸۹ مهر ۲۵
    اعتبار: 2
    تشکرها : 140
    ( 200 تشکر در 117 ارسال )
    ارسال: #1
    جایگزین برای GROUP BY
    سلام
    دارم روی یه سیستم خبر / وبلاگ کار میکنم. جدیدا بهش آپشن مولتی کتیگوری اضافه کردم. برای این کار یه جدول ساختم و شماره خبر و شاخه رو توش ذخیره میکنم. به این صورت که اگه یه خبر مثلا توی ۵ تا شاخه باشه پنج ردیف جدید به اون جدول اضافه میشه.

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

    [undefined=undefined]
    SELECT `story` FROM `news_link` WHERE (`topic` IN (1, 2) AND `status` = 1) GROUP BY `story` ORDER BY `publish` DESC, `id` DESC LIMIT 10[/undefined]

    برای تست حدود ۵۰۰۰۰ تا خبر رو به صورت رندم توی شاخه های مختلف وارد کردم و اون جدول لینک که اطلاعات شاخه - خبر توشه حدود ۸۵۰۰۰ ردیف داره. وقتی از کوئری بالا برای گرفتن نتایج استفاده میکنم زمان اجرا کوئری 0.1211 است و وقتی GROUP BY `story رو حذف میکنم این زمان تا حد 0.0005 ثانیه افت پیدا میکنه.

    پیشنهادی دارید که چطوری این کوئری رو اجرا کنم که زمان کمتری ببره و بهینه تر بشه؟

    ساختار اون جدوله هم اینه
    [undefined=undefined]
    CREATE TABLE `news_link` (
    `id` int (10) unsigned NOT NULL auto_increment,
    `story` int(10) unsigned NOT NULL,
    `topic` int(10) unsigned NOT NULL,
    `publish` int(10) unsigned NOT NULL,
    `status` tinyint(1) unsigned NOT NULL,
    `author` int(10) unsigned NOT NULL,
    PRIMARY KEY (`id`),
    KEY `story` (`story`),
    KEY `topic` (`topic`),
    KEY `publish` (`publish`),
    KEY `status` (`status`),
    KEY `author` (`author`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;[/undefined]
    __________________________________________________________________________
    فراگسترش
    Pi Engine - Powered By ZF2
    Pi Engine Modules
    (آخرین ویرایش در این ارسال: ۱۳۹۱ آذر ۳ ۰۳:۰۵ عصر، توسط voltan.)
    ۱۳۹۱ آذر ۳ ۰۲:۵۸ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ

    پیام‌های داخل این موضوع
    جایگزین برای GROUP BY - voltan - ۱۳۹۱ آذر ۳ ۰۲:۵۸ عصر
    RE: جایگزین برای GROUP BY - Reza - ۱۳۹۱ آذر ۳, ۱۱:۰۹ عصر
    RE: جایگزین برای GROUP BY - voltan - ۱۳۹۱ آذر ۳, ۱۱:۵۱ عصر
    RE: جایگزین برای GROUP BY - Reza - ۱۳۹۱ آذر ۴, ۰۲:۲۱ صبح
    RE: جایگزین برای GROUP BY - voltan - ۱۳۹۱ آذر ۴, ۱۱:۲۸ صبح
    RE: جایگزین برای GROUP BY - Reza - ۱۳۹۱ آذر ۴, ۰۳:۳۷ عصر
    RE: جایگزین برای GROUP BY - voltan - ۱۳۹۱ آذر ۴, ۰۴:۵۱ عصر
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS