לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #3  
ישן 23-10-2010, 18:22
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 1 שנכתבה על ידי Mr-Phajc שמתחילה ב "עזרה בשאילתא"

כיצד בנית את האינדקסים אצלך..?

דבר ראשון - אפילו אם יש לך אינדקס על השדה x, אתה לא מנצל אותו כשהביטוי LIKE מכיל את סימן האחוז ( % ) בתחילת מחרוזת החיפוש. זה גורם ל-mysql לבצע filesort, כלומר חיפוש בטבלה כולה ללא שימוש באינדקס...

כדי לבצע חיפוש ב-200 הרשומות האחרונות יש לך 3 אופציות בהתאם לאינדקסים הזמינים:

1. אם יש לך את האינדקס הבא: (id,x), סימן שאתה יכול לבצע את החיפוש שכתבת ביעילות עם השאילתא הבאה:
קוד:
SELECT `id` FROM `table` WHERE `x` LIKE '[1]%' ORDER BY `id` DESC LIMIT 0,200

זה אמור להיות הדרך היעילה ביותר כיוון שאתה משתמש באינדקס עבור כל השאילתא - אתה לא ניגש לטבלה כדי להחזיר מידע ללקוח. (בשאילתא אתה עושה שימוש רק בטורים id ו- x שמהן האינדקס בנוי)

2. אתה יכול לעשות שימוש בשאילתא הבאה:
קוד:
SELECT `id` FROM `table` WHERE `x` LIKE '[1]%' ORDER BY `id` DESC LIMIT 0,200

כאשר יש לך את האינדקסים הבאים: (x), (id)
mysql אמור לבצע intersection עם התוצאות שהוא ייקח מכל אינדקס.
אבל אם ה-cardinality של האינדקסים (ייחודיות הערכים באינדקסים) הוא נמוך, זה גורם ל-mysql לקבל הרבה תוצאות, מה שאומר שהשאילתא לא תהיה יעילה במיוחד כמו שאולי תצפה.

3. לבצע את מה ששימי אמר ולהריץ שאילתת subquery ששולפת את 200 הרשומות האחרונות בהתאם ל-sorting שתבצע על הטור id, ומהתוצאות של השאילתא הזו תבצע חיפוש על הטור x.

-----
כדי לדעת איזו שאילתא הכי יעילה אתה חייב לבצע בדיקות...
אגב לא ברור לי למה הוספת סוגריים מרובעים ( [] ) מסביב למספרים בטור x, זה נראה לי ממש מיותר, היית יכול להשתמש בפסיקים כדי להפריד ביניהם..
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 12:43

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר