เพื่อน ๆ คงจะเคยเจอปัญหาแบบผมบ้าง คือ บางทีเราต้อง Import Data จาก ผู้ให้บริการ Affiliate ที่บางทีเค้าจะให้เรามาเป็น Text File (.txt) ซึ่งเราอาจจะไม่สามารถนำมาใช้ได้ทันที่ อาจจะต้องนำเข้า database ก่อน เพื่อความง่ายและสะดวกในการเรียกใช้ หรือ แก้ไขข้อมูล

ผมได้เจอกับตัว เพราะทาง ShareASale มีการ Feed ข้อมูลมาให้แบบ .txt โดยจะทิ้งไว้บน FTญ ของเค้าด้วย เราต้องเข้าไปดึงมาเพื่อเก็บลงเว็บเราเอง

วันนี้ผมจะมาแนะตัว Code เบื้องต้นครับว่า ต้องทำอย่างไร ในส่วนของ mySQL เท่านั้นนะครับ

การที่เรามี Statement มาก  ๆ แล้วเราเรียก mysql_query() บ่อย ๆ อาจจะส่งผลให้ mySQL มีปัญหาได้ เช่น ล่ม ทำงานได้ช้า เกิด Deadlock สิ่งที่ควรหลีกเลี่ยงสำหรับเว็บไซต์คือ การเรียกใช้ mysql บ่อย ๆ หรือ เยอะ ๆ

ผมมีอีกวิธีในการ Import data เข้าไปแบบ Single Statement เลยครับ เพื่อน ๆ ที่เขียนโปรแกรม สามารถนำไปใช้ได้นะครับ

โดยปกติ เราจะเรียก

insert into TABLE values();

ใช่ไหมครับ ถ้าเรามี Insert statement แบบนี้เยอะๆ เราสามารถรวมไปไว้ใน Statment เดียวกันได้ครับ แบบนี้

insert into TABLE values (), (), (),(),();

แล้วเรียก mysql_query() ครั้งเดียวไปเลยครับ ข้อมูลทั้งหมดก็จะถูกยัดเข้า Database ไปเลย

วิธีการนี้ผมไม่ได้ทดสอบนะครับว่า ทำให้ mysql ทำงานหนักขึ้นหรือเบาลง ถ้าเราใช้ Loop ในการ insert (เรียก mysql_query() บ่อยๆ) เพื่อน ๆ คงต้องเอาไปทดสอบกันเองครับ

Random Posts