ورود

View Full Version : سوال: بهینه سازی کوئری برای دیتابیس حجیم



mr.wolf
دوشنبه 09 اسفند 1395, 19:53 عصر
سلام دوستان
یک وب سایت PHP دارم که از بانک اطلاعاتی Mysql استفاده می کنه.
یک کوئری ساده به شکل زیر داره به ازای هر بار بازدید صفحه اجرا میشه :

update daily_goods_visit set hits=hits+1 where date='20170227' and gid='8041' limit 1
که البته در این کوئری مقادیر date و gid متغیر هستن.

در این جدول حدود یک میلیون داده وجود داره.
سرور به من پیام داده این سری دستورات داره حجم اضافه از CPU میگیره و باید رفع بشه.
من راهی برای بهینه کردن به ذهنم نرسید.
لطفا راهنمایی کنین.

mr.wolf
دوشنبه 09 اسفند 1395, 22:59 عصر
دوستان کسی نظری نداره؟

Mahmood_M
چهارشنبه 11 اسفند 1395, 01:19 صبح
چرا از نوع رشته استفاده کردید ؟
نوع فیلد برای تاریخ رو Date و نوع فیلد gid رو هم عددی بذارید
برای فیلد gid اگر داده های تکراری زیادی نداره Index بذارید
می تونید Index رو به صورت ترکیبی برای هر دو فیلد با هم بذارید اگر کویری همیشه به همین صورته
توجه کنید که برای ایندکس ترکیبی، ترتیب اهمیت داره، اول فیلدی که تعداد رکوردهای بیشتری رو دربر می گیره ( تکرار بیشتری داره ) رو قرار بدید در شرط و بعد فیلد بعدی، در هنگام ساخت ایندکس هم ترتیب رو رعایت کنید

سعید صابری
چهارشنبه 11 اسفند 1395, 13:38 عصر
و سعی کنید از انجین MyIsam استفاده کنید