להאיץ את אתר האינטרנט שלך עם מטמון השאילתה
אחת הדרכים הטובות ביותר להאיץ את יישום האינטרנט שלך היא לאפשר במטמון השאילתה במסד הנתונים שלך, אשר מטמון נפוץ שאילתות SQL בזיכרון עבור גישה מיידית כמעט על ידי דף הבא שעושה את אותה בקשה.
הסיבה שיטה זו היא כל כך חזקה היא שאתה לא צריך לעשות כל שינוי ביישום האינטרנט שלך, אתה רק צריך להקריב קצת זיכרון. זה לא הולך לתקן את כל הבעיות שלך, אבל זה בהחלט לא יכול להזיק.
הערה: אם היישום שלך מעדכן טבלאות לעתים קרובות, אז המטמון השאילתה יהיה טיהר כל הזמן ואתה לא תקבל הרבה או כל תועלת מכך. זה אידיאלי עבור יישום זה בעיקר קורא נגד מסד הנתונים, כגון בלוג וורדפרס. זה גם לא יעבוד אם אתה מפעיל על אירוח משותף.
אפשר מטמון עם הפעלת שרת
הדבר הראשון שאתה רוצה לעשות הוא לוודא כי ההתקנה של MySQL למעשה יש תמיכה במטמון השאילתה זמין. רוב ההפצות לעשות, אבל אתה צריך לבדוק בכל מקרה.
אתה רוצה להפעיל את הפקודה הזאת מתוך קונסולת MySQL שלך, אשר אגיד לך אם במטמון השאילתה זמין.
mysql> הצג משתנים כמו 'have_query_cache'; + ------------------ + ------- + | Variable_name ערך | + ------------------ + ------- + | has_query_cache | YES | +------------------+-------+
אל תטעו בכך שמשמעותו של מטמון השאילתה מופעלת בפועל, מכיוון שרוב ספקי האירוח אינם מאפשרים זאת כברירת מחדל. למרבה הפלא, ההתקנה שלי Ubuntu Feisty כבר היה זה אפשרי ...
הבא יהיה לבדוק ולראות אם מטמון השאילתה מופעלת. נצטרך לבדוק יותר ממשתנה אחד, לכן אנו עשויים גם לעשות את כל זה בבת אחת על ידי בדיקה עבור שאילתת משתנה%
mysql> הצג משתנים כמו 'שאילתה%'; + ------------------------------ + --------- + | Variable_name ערך | + ------------------------------ + --------- + | השאילתה 8192 | | השאילתה 1048576 | | השאילתה 4096 | | השאילתה 8388608 | | השאילתה On | השאילתא OFF | השאילתה 8192 | +------------------------------+---------+
הנה הפריטים החשובים ברשימה ומה הם מתכוונים:
- השאילתה - זהו גודל המטמון בבתים. הגדרת ערך זה ל -0 תשבית את המטמון באופן יעיל.
- query_cache_type - ערך זה חייב להיות מופעל או 1 לשמירת מטמון השאילתה כברירת מחדל.
- query_cache_limit - זוהי שאילתת הגודל המקסימלית (בבתים) שתועבר למטמון.
אם הערך query_cache_size מוגדר ל- 0 או שאתה רק רוצה לשנות אותו, יהיה עליך להפעיל את הפקודה הבאה, תוך התחשבות שהערך הוא בבתים. לדוגמה, אם אתה רוצה להקצות 8MB אל המטמון היינו משתמשים 1024 * 1024 * 8 = 8388608 כערך.
SET GLOBAL query_cache_size = 8388608;
באופן דומה, ניתן להגדיר את האפשרויות האחרות באותה תחביר:
SET GLOBAL query_cache_limit = 1048576;SET GLOBALquery_cache_type
= 1;
עכשיו איך אפשר לדעת אם זה באמת עובד? באפשרותך להשתמש בפקודה 'הצג מצב' כדי למשוך את כל המשתנים המתחילים ב - Qc כדי להעיף מבט על מה שמתרחש מתחת למכסה המנוע.
mysql> הצג מצב כמו 'Qc%'; + ------------------------- + -------- + | Variable_name ערך | + ------------------------- + -------- + | Qcache_free_blocks | 65 | Qcache_free_memory | 201440 | | Qcache_hits 18868 | | Qcache_inserts 2940 | | Qcache_lowmem_prunes 665 | | Qcache_not_cached | 246 | | Qcache_queries_in_cache | 492 | | Qcache_total_blocks | 1430 | + ------------------------- + -------- + 8 שורות בקבוצה (0.00 שניות)
תבחין בנתונים הסטטיסטיים שיש לי הרבה זיכרון פנוי. אם השרת שלך מציג הרבה שזיפים lowmem, ייתכן שיהיה עליך לשקול להגדיל את הערך הזה, אבל אני לא הייתי מבלה יותר מדי זיכרון במטמון השאילתה עבור שרת אינטרנט ... אתה צריך להשאיר זיכרון זמין עבור אפאצ 'י, PHP, רובי, או מה אתה משתמש.
הפעל ב קובץ תצורה
אם אתה רוצה השינויים האלה כדי לשרוד אתחול מחדש או הפעלה מחדש של שרת MySQL, תצטרך להוסיף אותם לקובץ התצורה /etc/mysql/my.cnf עבור MySQL. שים לב שהוא עשוי להיות במיקום אחר בהתקנה שלך.
פתח את הקובץ באמצעות עורך טקסט במצב sudo או root, ולאחר מכן הוסף ערכים אלה אם הם עדיין לא קיימים בקובץ. אם הם קיימים, פשוט להתיר אותם.
query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576
שאילתה במטמון יכול לשפר באופן משמעותי את המהירות של יישום האינטרנט שלך, במיוחד אם היישום שלך עושה בעיקר קורא. עקוב אחר הסטטוס באמצעות השיטות הנ"ל וראה כיצד הוא פועל לאורך זמן.