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

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



  #4  
ישן 02-06-2015, 09:49
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,347
בתגובה להודעה מספר 1 שנכתבה על ידי Nati323 שמתחילה ב "שליפה מטבלה + שימוש בפונקציה count"

היה על זה דיון פה לפני הרבה זמן - בהנחה שאתה משתמש ב MySQL או בנגזרותיו - כעקרון הפתרון הוא להשתמש ב SQL_CALC_FOUND_ROWS ואז לעשות שאילתא נוספת SELECT FOUND_ROWS() ולקרוא את התוצאה שלה. בפעם הקודמת שהצעתי את זה, הפתיע אותי מישהו ואמר שזה למעשה איטי יותר מלהריץ את אותה שאילתא פעמיים, פעם אחת בלי COUNT ופעם אחת עם (נשמע כמו פאק של מסד הנתונים?) - וכאן כתבו על זה בהרחבה: https://www.percona.com/blog/2007/0...alc_found_rows/

בכל מקרה זה שתי שאילתות, כך שאת זה אתה לא הולך לחסוך.

בפשטות:
קוד:
SELECT id, name, des, price FROM posts WHERE auth = 1 ORDER BY id DESC LIMIT 5 SELECT COUNT(1) AS cnt FROM posts WHERE auth = 1


כמובן שכדאי מאוד שתעשה בטבלה שכזו אינדקס על auth,id שהוא order by id desc...

נ.ב. חשוב לציין שאם לא משתמשים ב SQL_CALC_FOUND_ROWS, כיוון ששתי השאילתות לא רצות בטראנזקציה נעולה - ייתכן שבין זמן הריצה של הראשונה לשנייה, ייתווסף או ימחק מידע מהטבלה, כך שיתכן שהמידע שיתקבל לא יהיה מדוייק למועד שבו בוצעה השאילתא שמשכה את המידע. למרות שיש סיכוי סביר מאוד שזה כנראה לא מעניין אותך, חשבתי בכל זאת שראוי שהדבר יצויין.
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 02-06-2015, 16:55
צלמית המשתמש של Nati323
  משתמש זכר Nati323 Nati323 אינו מחובר  
 
חבר מתאריך: 25.10.05
הודעות: 1,265
בתגובה להודעה מספר 4 שנכתבה על ידי שימי שמתחילה ב "היה על זה דיון פה לפני הרבה..."

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

בכל מקרה לגבי הצעתך לעשות indexים על העמודות auth ו id , לא הבנתי את המשך המשפט "שהוא order by id desc" , למה לעשות את ה index בגלל ה order by? אם כן ל auth אין קשר? ואם התכוונת שכל שדה שאני מבצע עליו פעולה, כגון השוואה או בדיקה מצריך אינדקס אז אשמח להסבר למה , קראתי ש index משפר את המהיריות של שליפת נתונים מטבלה (אמנם הוא מאריך את זמן ההכנסה) אבל לא הבנתי בדיוק מה זה , איך זה נראה ואיך זה משפיע בדיוק, אשמח להסבר...

בקשר לנ.ב, זה תאמת מעניין אותי בד"כ אבל במקרה שלי גם אם זה היה קורה באותו זמן יכול להיות שיהיו בעיות עם מחיקה לאחר מכן ואז הקישורים שהייתי מציג בכל מקרה היו נעלמים, תודה בכל אופן.
_____________________________________
[

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.21 שניות עם 10 שאילתות

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

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