GORAGOD.com
freelance, web developer, web designer, hosting, domain name
Home
Host & Domain
Portfolio
การ Import Text file หลายหมื่น Record
Home
Forum
การ Import Text file หลายหมื่น Record
yoojuy
การ Import Text file หลายหมื่น Record ด้วย PHP เรามีวิธีการจัดการอย่างไรครับ
ให้สามารถที่จะ Import ได้โดยไม่เกิดปัญหาครับ
goragod
555+++
ตอบตรงๆ ก้เขียนให้ถูก...
จะทำงานมากหรือน้อยก็มีหลักการเดียวกันครับ ทำงานน้อย แล้วผิดก็มีค่าพอๆกันกับทำมากๆแล้วผิดครับ
ที่ผมอยากจะสื่อจริงๆก็คือจะทำงานมากหรือน้อยก็ใช้หลักการอย่างเดียวกันครับ ถ้าโค้ดทำงานได้ถูกต้อง จะกี่ล้าน record ก็ทำงานได้
ผมเดาว่าเจ้าของคำถามคงกังวลว่าทำงานนานๆจะเป็นอย่างไร คำตอบที่ผมเคยเจอคือ "รำคาญครับ" อะไรที่ต้องคอยนานๆให้ความรู้สึกไม่ดีกับคนทั้งนั้น ยกตัวอย่างเช่น การอัปโหลดไฟล์ขนาดใหญ่ รอไปเถอะเป็นนานสองนานกว่าจะอัปโหลดเสร็จ ซึ่งปัญหาที่แท้จริงไม่ได้อยู่ที่ script แต่อยู่ที่ผู้ใช้เองมากกว่า ซึ่งไม่ชอบรอ ทางออกทั่วๆไปก็คือ แสดงความคืบหน้าของงานให้รู้
การทำงานขนาดใหญ่นานๆโดยทั่วไป มี 2 ปัญหาหลักๆที่มักเจอ คือ
1. time out แก้ได้โดยการเพิ่ม set_time_limit(0); ที่ตอนต้นๆไฟล์
2. หน่วยความจำไม่พอ จริงๆ แก้ได้โดยการออกแบบที่ดี ใช้หน่วยความจำและ ทำลายอย่างเหมาะสมก็ช่วยได้ (แนะนำ) หรือแก้ที่ปลายเหตุ ด้วยการเพิ่มหน่วยความจำ ini_set('memory_limt', '1024M');
ที่เหลือส่วนใหญ่ก็จะเป็นปัญหาอันเกิดจากการรอคอยของผู้ใช้ละครับ ซึ่งค่อนข้างน่ากลัวกว่า เช่น การอัปโหลดไฟล์ขนาดใหญ่ รอนาน....จนไม่รู้ว่ามันทำงานหรือไม่ และเสี่ยงปิดหน้าเว็บไปในที่สุด ซึ่งอาจทำให้มีปัญหาได้ ทางออกของปัญหานี้โดยทั่วๆไปคือการจำกัดขนาดที่ยอมรับได้แค่ขนาดหนึ่งก็พอครับ
yoojuy
ขอบคุณมากๆครับ จะนำความรู้ที่ได้ไปใช้ในการทำงานครับผม
ความคิดเห็น
รายละเอียด
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^
ตอบตรงๆ ก้เขียนให้ถูก...
จะทำงานมากหรือน้อยก็มีหลักการเดียวกันครับ ทำงานน้อย แล้วผิดก็มีค่าพอๆกันกับทำมากๆแล้วผิดครับ
ที่ผมอยากจะสื่อจริงๆก็คือจะทำงานมากหรือน้อยก็ใช้หลักการอย่างเดียวกันครับ ถ้าโค้ดทำงานได้ถูกต้อง จะกี่ล้าน record ก็ทำงานได้
ผมเดาว่าเจ้าของคำถามคงกังวลว่าทำงานนานๆจะเป็นอย่างไร คำตอบที่ผมเคยเจอคือ "รำคาญครับ" อะไรที่ต้องคอยนานๆให้ความรู้สึกไม่ดีกับคนทั้งนั้น ยกตัวอย่างเช่น การอัปโหลดไฟล์ขนาดใหญ่ รอไปเถอะเป็นนานสองนานกว่าจะอัปโหลดเสร็จ ซึ่งปัญหาที่แท้จริงไม่ได้อยู่ที่ script แต่อยู่ที่ผู้ใช้เองมากกว่า ซึ่งไม่ชอบรอ ทางออกทั่วๆไปก็คือ แสดงความคืบหน้าของงานให้รู้
การทำงานขนาดใหญ่นานๆโดยทั่วไป มี 2 ปัญหาหลักๆที่มักเจอ คือ
1. time out แก้ได้โดยการเพิ่ม set_time_limit(0); ที่ตอนต้นๆไฟล์
2. หน่วยความจำไม่พอ จริงๆ แก้ได้โดยการออกแบบที่ดี ใช้หน่วยความจำและ ทำลายอย่างเหมาะสมก็ช่วยได้ (แนะนำ) หรือแก้ที่ปลายเหตุ ด้วยการเพิ่มหน่วยความจำ ini_set('memory_limt', '1024M');
ที่เหลือส่วนใหญ่ก็จะเป็นปัญหาอันเกิดจากการรอคอยของผู้ใช้ละครับ ซึ่งค่อนข้างน่ากลัวกว่า เช่น การอัปโหลดไฟล์ขนาดใหญ่ รอนาน....จนไม่รู้ว่ามันทำงานหรือไม่ และเสี่ยงปิดหน้าเว็บไปในที่สุด ซึ่งอาจทำให้มีปัญหาได้ ทางออกของปัญหานี้โดยทั่วๆไปคือการจำกัดขนาดที่ยอมรับได้แค่ขนาดหนึ่งก็พอครับ