
אופטימיזציה למסד נתונים בוורדפרס היא ניקוי וסידור של המידע שהאתר צובר לאורך השנים — גרסאות ישנות של פוסטים, נתונים זמניים שפג תוקפם, הגדרות של תוספים שכבר נמחקו — כדי שכל טעינת עמוד תעבוד על פחות נתונים. מסד נתונים עמוס לא מפיל את האתר ביום אחד; הוא מאט אותו בהדרגה, ובמיוחד את העמודים שלא נשמרים במטמון: עמודי ניהול, חיפוש, עגלה ואזור אישי. החדשות הטובות: רוב הבעיה מתרכזת בכמה מקומות ידועים.
לפני כל פעולה על מסד הנתונים — גיבוי מלא. מחיקה מהמסד היא בלתי הפיכה. ראו גיבוי אתר וורדפרס.
איפה הנפח מצטבר
| מקור | מה זה | למה זה מאט |
|---|---|---|
| גרסאות (Revisions) | עותק של פוסט בכל שמירה | מנפח את טבלת הפוסטים |
| הגדרות שנטענות אוטומטית | הגדרות שנקראות בכל טעינת עמוד | נטענות בכל בקשה, גם כשלא צריך אותן |
| נתונים זמניים (Transients) | מטמון קצר טווח של תוספים | רשומות שפג תוקפן ונשארו |
| שאריות תוספים | הגדרות וטבלאות של תוספים שנמחקו | נפח מת, ולפעמים הגדרות שנטענות אוטומטית |
| תגובות ספאם ופריטים בפח | תוכן שממתין למחיקה | נפח מיותר |
1. הגדרות שנטענות אוטומטית: המקום הראשון לבדוק
טבלת ההגדרות של וורדפרס (wp_options) מכילה הגדרות של האתר ושל כל תוסף. חלק מההגדרות מסומנות לטעינה אוטומטית — וורדפרס קוראת את כולן בבת אחת בתחילת כל טעינת עמוד. תוסף שמאחסן שם נתון גדול בטעינה אוטומטית גורם לכל בקשה לשאת אותו, גם בעמודים שלא קשורים לתוסף.
וורדפרס 6.6 טיפלה בזה חלקית. לפי הודעת הפיתוח, הגדרה חדשה שגדולה מ-150KB ולא סומנה במפורש כבר לא נטענת אוטומטית, ובדיקת "בריאות האתר" מציגה אזהרה כשסך ההגדרות שנטענות אוטומטית עובר 800KB. זה לא מתקן הגדרות ישנות שכבר נשמרו כך — ולכן כדאי לבדוק.
בדיקה מהירה של הנפח, למי שיש גישה למסד הנתונים (שם הטבלה תלוי בקידומת של האתר):
SELECT option_name, LENGTH(option_value) AS bytes
FROM wp_options
WHERE autoload IN ('yes','on','auto-on','auto')
ORDER BY bytes DESC
LIMIT 20;
ברשימה הזו מחפשים הגדרות גדולות של תוספים שכבר לא מותקנים, או נתונים שלא צריכים להיטען בכל עמוד. את הטיפול — העברה לטעינה לא אוטומטית או מחיקה — עושים בזהירות, כי הגדרה שנמחקה בטעות יכולה לשבור תוסף פעיל.
2. גרסאות של פוסטים
וורדפרס שומרת עותק של פוסט בכל שמירה, כדי שאפשר יהיה לחזור לגרסה קודמת. זה שימושי, אבל באתר עם שנים של עריכות זה מצטבר. לפי התיעוד של wp-config, ברירת המחדל היא שמירה ללא הגבלה, ואפשר להגביל את מספר הגרסאות לכל פוסט:
define( 'WP_POST_REVISIONS', 10 );
ההגבלה חלה מכאן והלאה. גרסאות ישנות שכבר נשמרו נמחקות בנפרד, בכלי ניקוי או בשורת פקודה. לא הייתי מבטל גרסאות לגמרי: הן רשת הביטחון כשמישהו מוחק פסקה בטעות.
3. נתונים זמניים (Transients)
תוספים רבים שומרים תוצאות של חישובים או של קריאות לשירותים חיצוניים כנתון זמני עם תוקף. לפי התיעוד של וורדפרס, הם נשמרים בדרך כלל בטבלת ההגדרות, אבל מטמון אובייקטים יכול להעביר אותם לזיכרון — ואסור להניח שהם נמצאים במסד. וורדפרס כוללת פונקציה שמוחקת נתונים זמניים שפג תוקפם, אבל באתרים עם תוספים שמייצרים הרבה נתונים כאלה, כדאי לבדוק מדי פעם כמה מצטבר.
4. פח, ספאם ושאריות
- פח: לפי התיעוד, וורדפרס מוחקת פריטים מהפח לצמיתות אחרי 30 יום כברירת מחדל (
EMPTY_TRASH_DAYS). - תגובות ספאם: כדאי למחוק באופן קבוע, ואם האתר לא משתמש בתגובות בכלל — לסגור אותן.
- טבלאות של תוספים שנמחקו: תוסף שנמחק לא תמיד מוחק את הטבלאות שלו. לפני שמוחקים טבלה, מוודאים בוודאות מי יצר אותה.
5. תיקון ואופטימיזציה של הטבלאות
אחרי מחיקה של הרבה נתונים, אפשר להריץ אופטימיזציה לטבלאות כדי לפנות את המקום. לטבלאות פגומות יש לוורדפרס כלי תיקון מובנה: מפעילים אותו בהגדרה WP_ALLOW_REPAIR, והתיעוד מזהיר שהכלי זמין בלי התחברות כשההגדרה פעילה — ולכן מכבים אותה מיד בסיום.
מה לא לעשות
- להריץ תוסף "ניקוי בלחיצה" בלי גיבוי ובלי להבין מה הוא מוחק.
- למחוק הגדרות לפי שם שנראה מוכר — תוספים משתפים לפעמים קידומות.
- לתזמן ניקוי אגרסיבי אוטומטי שמוחק גרסאות ונתונים בלי בקרה.
מתי מסד הנתונים הוא לא הבעיה
באתר תדמית עם כמה עשרות עמודים ומטמון עמודים, מסד הנתונים הוא כמעט אף פעם לא צוואר הבקבוק. האבחון מתחיל במדידה: אם זמן התגובה של השרת גבוה בעמודים שלא נשמרים במטמון, שווה לבדוק את המסד. אם האתר איטי בצד הדפדפן — תמונות, סקריפטים — ניקוי מסד לא ישנה כלום. ראו גם וורדפרס איטי: איך מאבחנים.
שאלות נפוצות
כל כמה זמן צריך לנקות את מסד הנתונים?
באתר קטן — בדיקה פעם בכמה חודשים מספיקה. באתר עם חנות, הרבה תוספים או הרבה עריכות — כדאי שזה יהיה חלק מהתחזוקה השוטפת.
האם מטמון אובייקטים פותר את הבעיה?
הוא מקטין את מספר השאילתות למסד, אבל לא מנקה אותו. הגדרות ענקיות שנטענות אוטומטית ימשיכו להיטען — רק מהזיכרון. על המטמון כתבתי במאמר מטמון באתר.
בדיקת מסד הנתונים היא חלק מתחזוקת האתרים שלי ומעבודת שיפור מהירות אתר. אם ממשק הניהול של האתר שלכם איטי, ספרו לי.
אהבתם את המאמר?


