CyberTek - the future at the present!
Google

אופטימיזציה של MySQL

פורסם על ידי: admin (19 ביוני)

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

תצורת הקובץ נמצא בדרך כלל וכו my.ini / /.

Eempio של my.ini:

[Mysqld]
datadir = / var / lib / mysql
socket = / var / lib / MySQL / mysql.sock
סט משתנה = חיץ מפתח = 64M
סט משתנה = max_user_connections = 100
סט משתנה = query_cache_size = 64M
# ברירת מחדל כדי שימוש בתבנית הסיסמה הישנה עבור תאימות עם MySQL 3.x
לקוחות # (mysqlclient10 אלה באמצעות חבילת התאימות).
old_passwords = 1

[] Mysql.server
המשתמש = mysql
basedir = / var / lib

[] Mysqld_safe
לשגות-log = / var / log / mysqld.log
קובץ ה-PID-= / var / מפעיל / mysqld mysqld.pid /

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

Wait_timeout: מייצג את פרק הזמן עד חיבור זה Mysql אוטומטית נסגר עקב חוסר פעילות. מספר נמוך יותר פירושו ביצועים טובים יותר. במקרה כזה אתה חייב לשחק גם סוג של קשרים החיים השימושיים המשוער שלהם לטובה לכייל את הפרמטר.

back_log: שולטת כמה חיבורים בו זמנית יכולים לעמוד MySQL תוך יצירת פתילים. מספר נמוך יותר, כן גדלה במהירות. שימו לב לא קל לפגוע בביצועים ידי הגדרת פרמטר זה כמו שצריך, להשתמש בו רק כאשר הדבר נחוץ בהחלט.

Max_user_connections: מגדיר את המספר המרבי של חיבורים במקביל רשאי המשתמש. זה מאוד שימושי במערכות שבו MySQL יש לך גישה לשרת באותו מספר משתמשים בו זמנית.

Delayed_queue_size: מספר השורות בתוספת INSERT מתעכב. בשורות פחות יצורף, Mysql מהר.

Sort_buffer_size: הגדר את גודל מאגר ליישום הסעיפים ORDER BY ו GROUP BY. כדי לבצע שאילתות ביצועים יותר להגדיר פרמטר זה לערך גדול יותר 2m.

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

Thread_cache_size: קובע את מספר הנושאים לשמור בזיכרון המטמון. תכונה זו הופכת את השימוש האשכולות אשר מהר מאוד.

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

  • Handler_read_first: כמה פעמים את התקליט הראשון היה לקרוא מהמדד בטבלה. אם זה קורה לעתים קרובות, פירוש הדבר כי על השולחן לא היה צמוד כמו שצריך.
  • Innodb_buffer_pool_wait_free: מספר פעמים MySQL חייב לחכות שטיפה של דפי זיכרון. אם ערך ההחזרה הוא גבוה אז גודל הבריכה חיץ לא היה מוגדר כהלכה בסכום של פעולת הכתיבה שעבר על ידי השרת.
  • Key_reads: מספר פעמים את מערכת הקבצים לגשת אינדקסים במסד נתונים MySQL. זה מאט את מהירות ביצוע השאילתה, כך שאם ערך זה גבוה אז זה אומר כי המאגר מפתח קטן מדי ולא צריך לגדול.
  • Max_used_connections: מציין את המספר המרבי של חיבורים כי MySQL צריך לפתוח בו זמנית בזמן האחרון המטען. הראשון מייצג אמת המידה האמיתית (מסייע לקבוע את המספר המרבי של חיבורים לשרת יכול לתמוך) והשני מוצג Analyzer תנועה מעשית.
  • Open_tables: מציין את המספר הנוכחי של שולחנות פתוחים. ערך זה צריך להיות מנותח בשילוב עם גודל זיכרון המטמון של השולחן. בדרך כלל בגודל של table_cache חייב להיות מוגדר יותר למשתנה זה. אם הערך הוא נמוך בהרבה table_cache open_tables כדי למנוע בעיות בביצועים, ולכן הוא מומלץ להקטין את גודל המטמון. אם הערך של open_tables היא גבוהה מאוד ליד מטמון בגודל צריך אז להגדיל table_cache.
  • Select_full_join: מספר להצטרף מלא MySQL ביצע לפגוש בקשות הלקוח. ערך גבוה מצביע על כך, במקום באמצעות אינדקסים, MySQL כבר נאלצים לבצע להצטרף מלא. הדבר מצביע על הצורך מדד חזקה של טבלאות אלה.
  • Slow_queries: מספר שאילתות, כי לקח יותר זמן מהרגיל לבצע. ערך גבוה אמור להוביל אותנו לנתח את איטי שאילתה התחבר כדי לזהות מה שאילתות איטי כדי לייעל.
  • Threads_connected: המספר הכולל של הלקוחות המחוברים לשרת ברגע כזה.
  • Created_tmp_disk_tables: מספר טבלאות זמניות שנוצרו על הדיסק, במקום זיכרון. בהתחשב בעובדה שולחנות גישה המבצע דיסק היא בדרך כלל איטית יותר מאשר לזיכרון, את התוכן של המשתנה עומדת ביחס הפוך למהירות של שאילתות פועלות הזמני יצירת טבלה.
  • Uptime: מציין כמה שניות בשירות פעיל.
פורסם ב: MySQL , טיפים

הוסף תגובה

הגנה מפני דואר זבל באמצעות WP-Captcha חינם

מופעל על ידי Cybertek - סיוע מרחוק