פרטי השיעור
שיעור 3.1: שימוש ב-LOAD DATA INFILE
ליבוא קבצי CSV במהירות
מה זה LOAD DATA INFILE
? LOAD DATA INFILE
היא פקודה שמאפשרת לייבא קבצי CSV ישירות למסד הנתונים MySQL/MariaDB בצורה מהירה ויעילה מבלי לעבור על כל שורה בנפרד.
מתי להשתמש בזה?
- אם יש לך קבצי CSV גדולים מאוד, זו אחת הדרכים המהירות ביותר לייבא את הנתונים למערכת.
- שים לב שהקובץ חייב להיות נגיש ל-MySQL משרתי הקבצים שלך (local server) כדי להשתמש בפקודה הזו.
היכן לשים את הקוד? את הפקודה יש להריץ ישירות מול מסד הנתונים (למשל באמצעות phpMyAdmin, או MySQL Workbench), או לכלול אותה בסקריפט PHP לייבוא.
דוגמת קוד:
// קוד ב-PHP לשימוש ב-LOAD DATA INFILE
$filePath = '/path/to/your/file.csv';
$sql = "LOAD DATA INFILE '$filePath'
INTO TABLE wp_posts
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY 'n'
IGNORE 1 LINES
(post_title, post_content, post_date)";
$db->exec($sql);
-
הסבר של הקוד:
FIELDS TERMINATED BY ','
: הפרדה בין הערכים ב-CSV לפי פסיק.IGNORE 1 LINES
: מתעלם מהשורה הראשונה ב-CSV (שורת הכותרת).
מתי להשתמש ב-
LOAD DATA INFILE
?- כאשר יש לך קבצים של עשרות אלפי שורות או יותר, יבוא בקוד PHP רגיל (למשל עם לולאות
INSERT
) יהיה איטי מאוד. - פתרון זה מומלץ כאשר יש לך גישה לקובץ ה-CSV בשרת שבו יושב MySQL.