باید یک Query Execution Plan داشته باشی ، یعنی همون کاری که خودت انجام دادی ، کاری کنی که یک اجرای کوئری موثر داشته باشی ، بار هر بار اجرا تعداد ردیف ها کمتری رو درگیر کنی.لول . نه بابا . پست میزنه برای تگ هاش از گوگل استفاده میکنم برای همین تگ هاش برام خیلی مهمه . پست ها زیاده برای همین تگ هم زیاده .
آهان . آره بابا این که هست . tune شده هم هست + این که mysql 5.6 برای query cache از type های مختلفی پشتیبانی میکنه . من رو کش داخلی و بعد از اون روی memcache داخلی خود mysql گذاشتم . ( چون 5.6 خودش memcache داره )
خود دیتابیس حجم زیادی نداره ( حدود 1.5 گیگ هست ) . مساله اینه که با یک سری پارامتر باید تعداد سطر های درگیر در کوئری رو کم کرد . با limit و id between و دیگر operator های محدود کننده باز هم row_examined در حدود 300 هزار هست برای همین کوئری هاش دائم کند میشن و سرور overload میشه .
پ.ن : از innodb استفاده کردم که row level lock کنه باز هم نشد . ایندکس ها رو تغییر دادم و از stored هم استفاده کردم . از fixed row type تو myisam هم استفاده کردم . نتیجه نداد .
این بخش ها بخون شاید موثر بود.
http://dev.mysql.com/doc/refman/5.6/en/optimization.html
http://dev.mysql.com/doc/refman/5.6/en/execution-plan-information.html