הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   האצת שאילתה עם כמה WHEREים (https://hosts.co.il/forums/showthread.php?t=107142)

Insane 18-06-14 14:49

האצת שאילתה עם כמה WHEREים
 
אהלן,
יצרתי שאילתה ארוכה ששולפת ערכים ממספר טבלאות.
השאילתה רצה בסדר גמור, אבל הבעיה היא זמן הטעינה של הדף. לוקח לדף להיטען כ 2-3 שניות.

לדוגמה:
קוד:

WHERE categories.keywords = '$keyword' AND article.time > $time
אם אני מוריד את אחד מה-WHEREים, הדף נטען בסדר גמור. אבל אם אני משתמש ביותר מ-WHERE אחד, הדף נטען מאוד לאט.
(ה- time בשביל לשלוף ערכים מה-X זמן האחרון)

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

אשמח אם מישהו יכול להסביר על זה קצת יותר.

zoharesh 18-06-14 16:13

יש אינדקסים על העמודות שאתה מריץ עליהן חיפוש?

Insane 18-06-14 16:59

הרגע בדקתי ולאחת מהן לא היה והוספתי, עדיין יש איטיות.

אדיר 18-06-14 18:19

תריץ את זה עם EXPLAIN ותדביק פלט
רצוי שתביא גם את השאילתה המלאה אם אתה רוצה עזרה אמיתית..

Insane 18-06-14 18:55

לפלט הזה אתה מתכוון?
http://i.imgur.com/ZlkqyfC.png

וזו השאילתה שכתבתי:
קוד:

SELECT content.sid, content.time, categories.id
FROM content
JOIN urls ON content.sid = urls.id
JOIN associations ON urls.id = associations.sid
JOIN categories ON associations.catid = categories.id
WHERE categories.keywords = '$keyword' AND content.time > $timescale
ORDER BY content.views DESC
LIMIT 0,5

תודה.

Kernel 18-06-14 19:56

את הפלט תייצא לקובץ HTML ואותו תעדכן פעם ב-X זמן.

Insane 18-06-14 22:04

יהיה שינוי בפלט כל זמן מסוים?
http://jsfiddle.net/jZXjk/1/


כל הזמנים הם GMT +2. הזמן כעת הוא 15:56.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ