אופרטורים של MySQL לויסות מהירות

שלושה אופרטורים שניתן להשתמש בהן בשאילתות MySQL ויכולים לחסוך לכם לא מעט זמן.

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

לא מדובר בהאקים אלא בפקודות ולידיות לחלוטין שכדאי להכיר.

HIGH_PRIORITY

ניתן להשתמש ב-HIGH_PRIORITY ב-INSERT או ב-SELECT, זה גורם ל-MySQL לתעדף את השאילתה ולהעלות אותה בתור לביצוע מיידי, אידיאלי במקרים של שאילתות שחשוב לנו מאד שיתבצעו מהר גם על חשבון שאילתות אחרות.

דוגמה:


SELECT HIGH_PRIORITY * FROM tbl_name;

LOW_PRIORITY

LOW_PRIORITY מאפשרת לנו לתעדף שאילתות ולהעביר אותן אוטומטית לסוף התור. צריך להזהר עם זה, כי בשרתים עמוסים במיוחד כאשר תמיד יש תור, זה אומר שייתכן שהשאילתה לעולם לא תתבצע. אני משתמש בזה לכל מיני משימות תחזוקה שמתרחשות באמצע הלילה או (במקרי חירום) לפעולות אדמיניסטרטיביות שפחות משפיעות על חווית הגלישה. ניתן להשתמש ב-SELECT או ב-INSERT.

דוגמה:


SELECT LOW_PRIORITY * FROM tbl_name;

INSERT DELAYED

ציינתי ש-LOW_PRIORITY יכולה לגרום לשאילתה שלנו לא לרוץ לעולם, דבר שיכול להיות בעייתי בשאילתת INSERT. על מנת למנוע את האפשרות הזו ובכל זאת לתעדף שאילתת INSERT בעדיפות נמוכה, ניתן להכניס את האופרטור INSERT DELAYED כדי לגרום ל-INSERT לרוץ רק כאשר הטבלה פנויה. כלומר ש-INSERT ירוץ אבל לפחות לא יעכב חיבורים אחרים. ניתן להשתמש ב-INSERT DELAYED רק בטבלאות עם מנוע MyISAM, Archive, BlackHole ו-Memory.

דוגמה:


INSERT DELAYED INTO tbl_name (col) VALUES ('val'); 

שלושת האופרטורים האלו יכולים לחסוך לכם המון זמן של שאילתות מיותרות. וגם אם לא – טוב להכיר אותם.

פוסטים נוספים שכדאי לקרוא

רספברי פיי

הרצת גו על רספברי פיי

עולם הרספברי פיי והמייקרים ניתן לתפעול בכל שפה – לא רק פייתון או C – כאן אני מסביר על גו

גלילה לראש העמוד