การ Import Text file หลายหมื่น Record HomeForumการ Import Text file หลายหมื่น Record Wanchana yoojuy การ Import Text file หลายหมื่น Record ด้วย PHP เรามีวิธีการจัดการอย่างไรครับ ให้สามารถที่จะ Import ได้โดยไม่เกิดปัญหาครับ กรกฎ วิริยะ 555+++ ตอบตรงๆ ก้เขียนให้ถูก... จะทำงานมากหรือน้อยก็มีหลักการเดียวกันครับ ทำงานน้อย แล้วผิดก็มีค่าพอๆกันกับทำมากๆแล้วผิดครับ ที่ผมอยากจะสื่อจริงๆก็คือจะทำงานมากหรือน้อยก็ใช้หลักการอย่างเดียวกันครับ ถ้าโค้ดทำงานได้ถูกต้อง จะกี่ล้าน record ก็ทำงานได้ ผมเดาว่าเจ้าของคำถามคงกังวลว่าทำงานนานๆจะเป็นอย่างไร คำตอบที่ผมเคยเจอคือ "รำคาญครับ" อะไรที่ต้องคอยนานๆให้ความรู้สึกไม่ดีกับคนทั้งนั้น ยกตัวอย่างเช่น การอัปโหลดไฟล์ขนาดใหญ่ รอไปเถอะเป็นนานสองนานกว่าจะอัปโหลดเสร็จ ซึ่งปัญหาที่แท้จริงไม่ได้อยู่ที่ script แต่อยู่ที่ผู้ใช้เองมากกว่า ซึ่งไม่ชอบรอ ทางออกทั่วๆไปก็คือ แสดงความคืบหน้าของงานให้รู้ การทำงานขนาดใหญ่นานๆโดยทั่วไป มี 2 ปัญหาหลักๆที่มักเจอ คือ 1. time out แก้ได้โดยการเพิ่ม set_time_limit(0); ที่ตอนต้นๆไฟล์ 2. หน่วยความจำไม่พอ จริงๆ แก้ได้โดยการออกแบบที่ดี ใช้หน่วยความจำและ ทำลายอย่างเหมาะสมก็ช่วยได้ (แนะนำ) หรือแก้ที่ปลายเหตุ ด้วยการเพิ่มหน่วยความจำ ini_set('memory_limt', '1024M'); ที่เหลือส่วนใหญ่ก็จะเป็นปัญหาอันเกิดจากการรอคอยของผู้ใช้ละครับ ซึ่งค่อนข้างน่ากลัวกว่า เช่น การอัปโหลดไฟล์ขนาดใหญ่ รอนาน....จนไม่รู้ว่ามันทำงานหรือไม่ และเสี่ยงปิดหน้าเว็บไปในที่สุด ซึ่งอาจทำให้มีปัญหาได้ ทางออกของปัญหานี้โดยทั่วๆไปคือการจำกัดขนาดที่ยอมรับได้แค่ขนาดหนึ่งก็พอครับ Wanchana yoojuy ขอบคุณมากๆครับ จะนำความรู้ที่ได้ไปใช้ในการทำงานครับผม ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
ตอบตรงๆ ก้เขียนให้ถูก...
จะทำงานมากหรือน้อยก็มีหลักการเดียวกันครับ ทำงานน้อย แล้วผิดก็มีค่าพอๆกันกับทำมากๆแล้วผิดครับ
ที่ผมอยากจะสื่อจริงๆก็คือจะทำงานมากหรือน้อยก็ใช้หลักการอย่างเดียวกันครับ ถ้าโค้ดทำงานได้ถูกต้อง จะกี่ล้าน record ก็ทำงานได้
ผมเดาว่าเจ้าของคำถามคงกังวลว่าทำงานนานๆจะเป็นอย่างไร คำตอบที่ผมเคยเจอคือ "รำคาญครับ" อะไรที่ต้องคอยนานๆให้ความรู้สึกไม่ดีกับคนทั้งนั้น ยกตัวอย่างเช่น การอัปโหลดไฟล์ขนาดใหญ่ รอไปเถอะเป็นนานสองนานกว่าจะอัปโหลดเสร็จ ซึ่งปัญหาที่แท้จริงไม่ได้อยู่ที่ script แต่อยู่ที่ผู้ใช้เองมากกว่า ซึ่งไม่ชอบรอ ทางออกทั่วๆไปก็คือ แสดงความคืบหน้าของงานให้รู้
การทำงานขนาดใหญ่นานๆโดยทั่วไป มี 2 ปัญหาหลักๆที่มักเจอ คือ
1. time out แก้ได้โดยการเพิ่ม set_time_limit(0); ที่ตอนต้นๆไฟล์
2. หน่วยความจำไม่พอ จริงๆ แก้ได้โดยการออกแบบที่ดี ใช้หน่วยความจำและ ทำลายอย่างเหมาะสมก็ช่วยได้ (แนะนำ) หรือแก้ที่ปลายเหตุ ด้วยการเพิ่มหน่วยความจำ ini_set('memory_limt', '1024M');
ที่เหลือส่วนใหญ่ก็จะเป็นปัญหาอันเกิดจากการรอคอยของผู้ใช้ละครับ ซึ่งค่อนข้างน่ากลัวกว่า เช่น การอัปโหลดไฟล์ขนาดใหญ่ รอนาน....จนไม่รู้ว่ามันทำงานหรือไม่ และเสี่ยงปิดหน้าเว็บไปในที่สุด ซึ่งอาจทำให้มีปัญหาได้ ทางออกของปัญหานี้โดยทั่วๆไปคือการจำกัดขนาดที่ยอมรับได้แค่ขนาดหนึ่งก็พอครับ