פרטי הקורס
מבוא לאופטימיזציה של מסדי נתונים
0/1
חלק 6: בניית סקריפט ייבוא מותאם אישית
חלק 7: בניית סקריפטים מותאמים אישית לייבוא נתונים
קורס: אופטימיזציה לביצועי מסדי נתונים וייבוא קבצים גדולים ל-WordPress
פרטי השיעור

שיעור 2.2: אופטימיזציה של MySQL/MariaDB ליבוא נתונים גדולים

הסבר בסיסי: יבוא נתונים גדול דורש תצורה מתאימה של מסד הנתונים כדי לטפל בשאילתות מורכבות ובכמות גדולה של נתונים. פרמטרים מסוימים ב-MySQL/MariaDB משפיעים ישירות על יכולת המסד לטפל במנות גדולות של נתונים.

היכן לשים את ההגדרות? ההגדרות של MySQL/MariaDB ממוקמות בקובץ my.cnf (בלינוקס) או my.ini (ב-Windows). הקובץ נמצא בדרך כלל בספריית ההתקנה של MySQL/MariaDB.

דוגמה להגדרות:

[mysqld]
max_allowed_packet = 64M  ; גודל החבילה המקסימלי - 64 מגה
innodb_buffer_pool_size = 1G ; 1 ג'יגה זיכרון ל-Buffer Pool
wait_timeout = 28800 ; זמן המתנה מקסימלי ל-8 שעות
interactive_timeout = 28800 ; זמן המתנה מקסימלי לאינטראקציות ב-8 שעות

***הערה אם המסד מסרב להתחיל לאחר הוספת השינויים הללו יש להסיר את תגית ה [mysqld] מקוד :

max_allowed_packet = 64M  ; גודל החבילה המקסימלי - 64 מגה
innodb_buffer_pool_size = 1G ; 1 ג'יגה זיכרון ל-Buffer Pool
wait_timeout = 28800 ; זמן המתנה מקסימלי ל-8 שעות
interactive_timeout = 28800 ; זמן המתנה מקסימלי לאינטראקציות ב-8 שעות

  • הסבר כללי:

    • max_allowed_packet: פרמטר זה קובע את גודל החבילה המקסימלית שמסד הנתונים יכול לקבל בפקודה אחת. אם אתה מייבא קבצים גדולים, כמו CSV המכיל הרבה עמודות, ייתכן שתקבל שגיאות אלא אם תגדיר ערך גבוה מספיק.
    • innodb_buffer_pool_size: ככל שגודל ה-buffer pool גדול יותר, כך MySQL יכול לעבד יותר נתונים בזיכרון במקום בדיסק, מה שמשפר את הביצועים במיוחד כשיש לך הרבה שאילתות או נתונים.
    • wait_timeout ו- interactive_timeout: עוזרים להימנע מסגירת חיבורים במהלך יבוא נתונים ממושך.

    איך לקבוע את הערכים?

    • max_allowed_packet: אם אתה מייבא קבצי CSV של יותר מ-50MB, מומלץ להגדיר ל-64M לפחות.
    • innodb_buffer_pool_size: עבור אתרים גדולים או מסדי נתונים שכוללים הרבה נתונים, הגדר ל-1GB או יותר בהתאם לכמות הזיכרון בשרת.
צפיות מבקרים: 6