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

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



  #1  
ישן 21-08-2008, 13:56
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473

ציטוט:
במקור נכתב על ידי ישראל K
במקרים רבים, טבלה קרטזית תהיה עדיפה, כיון שחסכון בזמן גישה נוסף למסד נתונים, בד"כ משמעותי יותר מאשר נפח התוצאה, במיוחד כשמדובר באי אלו רשומות בודדות ולא בכמה מאות קילו בתים של נתונים.


עשיתי בדיקה benchmark ואכן צדקת - עם INNER JOIN זה מהיר יותר במאית שניה (ב-0.001 מהיר יותר).

אבל כאן מגיעה אלי בעיה חדשה:
אני צריך לשלב איכשהו ב-WHERE, שבמידה ולא מצאתי בטבלה tbl1 את ה-id שדרוש לי, אז זה יבחר רשומה ע"פ קריטריונים אחרים (ע"פ 2 שדות אחרים).

בדרך שעשיתי (לא בדרך של INNER JOIN), כתבתי את זה בצורה הבאה:

קוד:
WHERE (tbl1.id=123 OR ( col_foo=456 AND col_bar=789 ) ) AND active_row=1

המספרים הנ"ל שבחרתי הם שרירותיים.

אם אכתוב את פיסקת ה-WHERE שלמעלה כאשר אני משתמש ב-INNER JOIN, זה יסבך לי את התוצאה שאקבל מהשאילתא, כפי שגם צפוי לקרות.

אני משתמש ב-col_foo ו-col_bar כדי למצוא רשומה אחרת, במידה ולא מצאתי את הרשומה ע"פ ה-id שנתון לי (שבמקרה הזה הוא 123).

את ה-active_row אני חייב שיהיה שווה ל-1 בכל מקרה שבו אני מקבל מידע\רשומה מהטבלה tbl1, כדי שאקבל רשומה שהיא נחשבת פעילה. לכן אני צריך אותו בשני המצבים הנ"ל.

לכן השאלה היא האם זה משתלם להשתמש ב-INNER JOIN, בגלל הבעיות החדשות שמופיעות, שכנראה בגללם אצטרך להריץ שאילתא חדשה וניפרדת כדי לקבל רשומה מהטבלה tbl1 ?

יש לציין שיש עוד מצב אחד אחרון - שבו אני בוחר רנדומלית (בעזרת ORDER BY RAND) רשומה מהטבלה tbl1 שהיא פעילה ( שיש לה active_row=1 ), במידה ולא קיבלתי רשומה בתנאי של col_foo ו-col_bar.
המצב הזה סיבך אותי עוד קצת יותר ולכן נכון לעכשיו הוא מורץ בשאילתא נפרדת (במידה והשאילתא הראשונה לא החזירה שום רשומה).

נערך לאחרונה ע"י dorM בתאריך 21-08-2008 בשעה 13:59.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.04 שניות עם 11 שאילתות

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

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