![]() |
יעילות בטבלאות,איך?
יש לי מערכת מאמרים
יש לי לדוגמא 100 קטגוריות ובכל קטגרויה יש לי 20 מאמרים עכשיו אני רוצה להציג רק את המאמרים מהקטגוריה מספר 90 לדוגמא אז זה צריך לעבור על 100*20 ולבדוק כל מאמר אם ה CATEGORY ID שווה ל 90 ואם תכפילו אם מספרים תגיעו למספרים מפחידים יש דרך לייעל את זה? תודה |
בשביל זה יש WHERE בשאילתות SQL..
קוד:
SELECT * FROM articles WHERE article_category=90 article_category = שדה שמכיל את ה ID של הקטגוריה. |
כמובן
אבל עדיין עם WHERE זה ירוץ על כמות אסטרונומית ואם נגיד יש לי מיליון קטגוריות ואני צריך רק 1 המסד יקרוס יש דרך לייעל את זה? |
הפתרון במקרה הזה הוא הגדרת אינדקס על השדה המבוקש.
כשאתה מגדיר index על שדה, mysql ימיין את הערכים בטבלה לפי השדה הזה, ויגדיר טבלה נפרדת של "סמניות" שיגדירו לmysql איפה להתחיל לחפש עבור רשומה מסויימת, לדוגמא אם יש לך בטבלה ערכים עם id של 1-1000 ממויינים בסדר עולה, ובטבלת סימניות יש id 500 ומיקום של הרשומה בטבלה, לכן כשתחפש id 600 למשל, mysql יתחיל לחפש מהרשומה ה500 ולא מ0. תצטרך ללמוד עוד על הנושא בשביל להשתמש בו בצורה שלא תזיק לבסיס הנתונים שלך. |
ציטוט:
אל תשכח שהיעילות מתהפכת כשאתה מבצע יותר UPDATES מאשר SELECTS |
ציטוט:
אשמח להסבר בבקשה,וכמובן תודה על התגובה ציטוט:
אז הבנתי אני חושב |
cache
|
ציטוט:
|
כל הזמנים הם GMT +2. הזמן כעת הוא 16:15. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ