שאלת יעילות MYSQL

שאלת יעילות MYSQL

יש לי את השאילתא להלן:
SELECT COUNT(*) AS `count` FROM `myTable` WHERE `fID`=74 AND `pid`="0" AND `status` IN ("a", "b")

האם היה יותר יעיל איתו הייתי כותב staus=A or statys=b ?
יש לי אינדקס על status
וכן על fID+pid

השאילתא איטית מהגהינום וגם jet profiler צועק הצילו.

1) מה אני יכול לעשות על מנת לשפר את השאילתא?
2) אשמח לשמוע הצעות לפרופיילרים, אם כבר אנחנו מדברים.
 

bnayal

New member
שני קישורים

אני לא מומחה גדול בייעול DBים אבל קבל שני קישורים שטוענים ש IN יותר יעיל.
http://stackoverflow.com/questions/782915/mysql-or-vs-in-performance
http://stackoverflow.com/questions/4286403/mysql-query-optimization-in-vs-or
מה שבטוח - שווה לך לעשות בדיקות משלך ולראות מהירויות (הייתי מריץ את זה על שרת פיתוח כמובן).
יש גם פורום מסדי נתונים בתפוז...

בניה
 

CaTz

New member
כמה רשומות יש לך?

אין מצב ששילתה כזו פשוטה הורגת לך את השרת.

אני עם 700K+ רשומות הרצתי שאילתות סטטיסטיקה ולא הרג לי כלום...
במיוחד שיש לך אינדקסים על העמודות המתאימות...

מה שהייתי ממליץ לך תוסיף EXPLAIN לפני הselect בשאילתה...

זה יציג לך על כמה ואיזה רשומות הוא רץ, אם תראה מס' גבוהה במיוחד, אז כנראה שהוא לא משתמש לך באינדקס.
 
למעלה