สอบถาม การดึงข้อมูล ครับ ทำแบบนี้ ok เปล่า
Moderator: mindphp, ผู้ดูแลกระดาน
สอบถาม การดึงข้อมูล ครับ ทำแบบนี้ ok เปล่า
ปกติหน้าแรกของเว็บ จะโชว์นู้นโชว์นี้ ที่ต้องดึงจาก ฐานข้อมูลมาทั้งนั้น
ถ้าคนน้อยๆไม่ค่อยจะมีปัญหาเท่าไร แต่ถ้าเว็บคนเยอะมากๆ
คิดว่าอนาคตเว็บคนเป้นหมื่นคน
ไม่รู้ผมทำถูกหรือเปล่าหรือมีวิธีที่ดีกว่านี้ลองแนะทีครับ
ผมใช้ fopen เขียน file save เป็น .html เห็บไว้ในโฟเดอร์ ที่สร้างขึ้น
เช่น html/htmlex.html < นี้คือ file ที่เขียนจาก fopen htmlex.html
โดย ที่ไม่ได้ดึงจากฐานข้อมูลมาเลยแค่ดึง ฐานข้อมูลมาเขียน ลงfopen แล้วบันทึกเป็น .html เท่านั้น บันทึกไม่ได้บันทึกหมดทุก record นะครับ ในที่นี้บันทึกแค่ 10 record
ที่นี้ก็มาทำหน้าแรก ตรงส่วนที่ต้องการใช้ข้อมูลผมก็ include เข้ามา
เวลาอับเดต ผมจะสร้างไว้1หน้าเป็นหน้าเขียน File หน้านี้ผมสรมารถเข้าได้คนเดียว
สรุปหน้าแรกของผมฐานข้อที่ดึงจาก sql ตรงๆจะไม่มีเลย มีแต่ file html เท่านั้นเอง
หน้าอื่นก็ใช้ฐานข้อมูล sql ตามปกติ หน้าที่ใช้ฐานข้อมูลผมจะพยายามดึงมาให้น้อยที่สุดเท่าที่จะทำได้
ถ้าคนน้อยๆไม่ค่อยจะมีปัญหาเท่าไร แต่ถ้าเว็บคนเยอะมากๆ
คิดว่าอนาคตเว็บคนเป้นหมื่นคน
ไม่รู้ผมทำถูกหรือเปล่าหรือมีวิธีที่ดีกว่านี้ลองแนะทีครับ
ผมใช้ fopen เขียน file save เป็น .html เห็บไว้ในโฟเดอร์ ที่สร้างขึ้น
เช่น html/htmlex.html < นี้คือ file ที่เขียนจาก fopen htmlex.html
โดย ที่ไม่ได้ดึงจากฐานข้อมูลมาเลยแค่ดึง ฐานข้อมูลมาเขียน ลงfopen แล้วบันทึกเป็น .html เท่านั้น บันทึกไม่ได้บันทึกหมดทุก record นะครับ ในที่นี้บันทึกแค่ 10 record
ที่นี้ก็มาทำหน้าแรก ตรงส่วนที่ต้องการใช้ข้อมูลผมก็ include เข้ามา
เวลาอับเดต ผมจะสร้างไว้1หน้าเป็นหน้าเขียน File หน้านี้ผมสรมารถเข้าได้คนเดียว
สรุปหน้าแรกของผมฐานข้อที่ดึงจาก sql ตรงๆจะไม่มีเลย มีแต่ file html เท่านั้นเอง
หน้าอื่นก็ใช้ฐานข้อมูล sql ตามปกติ หน้าที่ใช้ฐานข้อมูลผมจะพยายามดึงมาให้น้อยที่สุดเท่าที่จะทำได้
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41232
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: สอบถาม การดึงข้อมูล ครับ ทำแบบนี้ ok เปล่า
ถ้าข้อมูลไม่มีการอัพเดด และไฟล์ที่เก็บไว้ไม่ใหญ่มาก ก็เป็นวิธีที่ดีครับ
เป็นการทำ cache แบบง่ายๆ
เป็นการทำ cache แบบง่ายๆ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
Re: สอบถาม การดึงข้อมูล ครับ ทำแบบนี้ ok เปล่า
ถามอีกนิด cache กับที่ ผมเสนอมา ต่างกันเปล่าครับ คิดว่าหลักการคล้ายๆกัน
- secivon
- PHP Full Member
- โพสต์: 35
- ลงทะเบียนเมื่อ: 24/03/2009 5:15 pm
Re: สอบถาม การดึงข้อมูล ครับ ทำแบบนี้ ok เปล่า
รบกวนถามต่อ 2-3 ข้อครับmindphp เขียน:ถ้าข้อมูลไม่มีการอัพเดด และไฟล์ที่เก็บไว้ไม่ใหญ่มาก ก็เป็นวิธีที่ดีครับ
เป็นการทำ cache แบบง่ายๆ
1.จากที่ highlight ไว้ ถ้าสุดท้ายแล้วขนาดของ content มันจำเป็นต้องใหญ่จริงๆ
ผมคิดว่าอ่านเอาจาก file system ก็ยังเร็วกว่า retrieve จาก database ไม่ใช่หรือครับ
หรือคุณ mindphp เกรงว่าจะมีผลเรื่องการ lock file เพื่อ get content หรือครับ
2. กรณีที่จะมีปัญหากับการอ่าน content จาก file ของกรณี จขกท.นี่
ต้องมี concurrent ซักระดับไหนครับ (ส่วนตัวคิดว่า page view หลักหมื่น(ต่อ ชม.?)นี่ธรรมดามากๆ)
เพราะ เท่าที่แกะ opensource ส่วนใหญ่ดู ก็ใช้ concept เดียวกันคือมี shared configuration file ร่วมกัน
การจะ view หน้าใดๆ ยังไง server ก็ต้องมา execute configure file ตัวนี้ ยังไม่ค่อยมีปัญหาเลย
แถมกรณี จขกท. ก็เป็นการเอา content มาใช้ โดยไม่ต้องมีการ parse ไป execute อีกต่างหาก
น่าจะเร็วกว่าด้วยซ้ำ
3. ถ้า content ของ จขกท. เป็น static text วิธีที่ดีที่สุดในการเอามาใช้งานคืออะไรครับ
- include / require โดยตรง
- file_get_contents() / fopen / .... filesystem function ทั้งหลาย
- อื่นๆ
ขอบคุณครับ
"อย่าเอาแต่โทษเด็ก ถ้าเด็กมันจะห่วย ดูตัวเองบ้างว่าทำบ้านเมืองไว้เป็นยังไง"
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41232
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: สอบถาม การดึงข้อมูล ครับ ทำแบบนี้ ok เปล่า
ไฟล์ใหญ่มาก ถ้าเกินขนาด file system ที่ระบบเปิดได้ php ก็เปิดมาไม่ได้ครับ เท่าที่เคยเจอปัญหา คือ 250M
แต่ถ้า gen หน้าเดียวเป็นไฟล์คงไม่ใหญ่ขนาดนั้นใช่ไหมครับ
อย่างไรก็ตามถ้าไฟล์ ใหญ่ๆ อย่าลืมเรื่องเวลาในการอ่านไฟล์เข้่า memory และการใช้ CPU ของ ระบบด้วยนะครับ
ผมเคยเจอ วิธี ของ AdoDB เค้าทำ CacheExecute เค้าจะทำไฟล์ไม่ใหญ่ แต่ละไฟล์ 10K (ถ้าจำไม่ผิดนะครับ)
ข้อ 2 ถ้าจะเอาแบบเร็วที่สุด ก็ืทำ APC หรือ ทำ Memcache ข้อมูลที่ดึงมาจากฐานข้อมูลไว้เลยครับ
ข้อ 3 ถ้า content เป็น text ธรรมดา (ไม่ต้องประมวลผลแล้ว)
ต้องแยก ระหว่าง ตระกูล include (include,require, _once) กับ Filesystem function นะครับ
ตระกูล include มันจะอ่านไฟล์และตัวแปล, function, class ที่อยู่ในไฟล์ที่มัน include มาใช้ได้ เหมาะสำหรับไฟล์ php หรือ text file ที่มีโค้ด เพื่อเอามาประมวลผล (ไม่ควรเอามาทำ ระบบ cache เพราะ ถ้าไปอ่านไฟล์ที่ถูกเขียนโดยใครก็ได้ ซึ่งอาจจะถูกแทรกโค้ด php หรืำอคำสั่งระบบเข้าไปจะไม่ปลอดภัย)
Filesystem function
- file_get_contents จะเร็วกว่า fread นิดหน่อย
จริงๆ ลองทำ benchmark ในระบบของเราเองก็ได้ครับ เพราะปัจจัยการเลือก ชนิดของ Filesystem ของ OS ก็มีส่วน
สรุปถ้าจะเอาแบบเร็วๆ
1. ถ้ามี server เป็นของตัวเองและมี ram เยอะๆ APC ไฟล์php และ Memcache ข้อมูลจากฐานข้อมูล เร็วที่สุดครับ
2. ปรับแต่ง Server ไม่ได้ก็ cache ใส่ไำฟล์ เอาใช้ โดย file_get_contents (แต่ผมลองแกะโค้ด ระบบ cache file ส่วนใหญ่เค้าใช้ fread กัน คงเพราะจัดการกับข้อมูลที่อ่านมาใช้ได้ง่ายกว่า)
แต่ถ้า gen หน้าเดียวเป็นไฟล์คงไม่ใหญ่ขนาดนั้นใช่ไหมครับ
อย่างไรก็ตามถ้าไฟล์ ใหญ่ๆ อย่าลืมเรื่องเวลาในการอ่านไฟล์เข้่า memory และการใช้ CPU ของ ระบบด้วยนะครับ
ผมเคยเจอ วิธี ของ AdoDB เค้าทำ CacheExecute เค้าจะทำไฟล์ไม่ใหญ่ แต่ละไฟล์ 10K (ถ้าจำไม่ผิดนะครับ)
ข้อ 2 ถ้าจะเอาแบบเร็วที่สุด ก็ืทำ APC หรือ ทำ Memcache ข้อมูลที่ดึงมาจากฐานข้อมูลไว้เลยครับ
ข้อ 3 ถ้า content เป็น text ธรรมดา (ไม่ต้องประมวลผลแล้ว)
ต้องแยก ระหว่าง ตระกูล include (include,require, _once) กับ Filesystem function นะครับ
ตระกูล include มันจะอ่านไฟล์และตัวแปล, function, class ที่อยู่ในไฟล์ที่มัน include มาใช้ได้ เหมาะสำหรับไฟล์ php หรือ text file ที่มีโค้ด เพื่อเอามาประมวลผล (ไม่ควรเอามาทำ ระบบ cache เพราะ ถ้าไปอ่านไฟล์ที่ถูกเขียนโดยใครก็ได้ ซึ่งอาจจะถูกแทรกโค้ด php หรืำอคำสั่งระบบเข้าไปจะไม่ปลอดภัย)
Filesystem function
- file_get_contents จะเร็วกว่า fread นิดหน่อย
จริงๆ ลองทำ benchmark ในระบบของเราเองก็ได้ครับ เพราะปัจจัยการเลือก ชนิดของ Filesystem ของ OS ก็มีส่วน
สรุปถ้าจะเอาแบบเร็วๆ
1. ถ้ามี server เป็นของตัวเองและมี ram เยอะๆ APC ไฟล์php และ Memcache ข้อมูลจากฐานข้อมูล เร็วที่สุดครับ
2. ปรับแต่ง Server ไม่ได้ก็ cache ใส่ไำฟล์ เอาใช้ โดย file_get_contents (แต่ผมลองแกะโค้ด ระบบ cache file ส่วนใหญ่เค้าใช้ fread กัน คงเพราะจัดการกับข้อมูลที่อ่านมาใช้ได้ง่ายกว่า)
- secivon
- PHP Full Member
- โพสต์: 35
- ลงทะเบียนเมื่อ: 24/03/2009 5:15 pm
Re: สอบถาม การดึงข้อมูล ครับ ทำแบบนี้ ok เปล่า
ขอบคุณ คุณ mindphp ครับ
ผมไม่เคยทำ benchmark แบบจริงๆจังเลยแฮะ
ไม่ทราบว่ามี link หรือ tool ในการทำ benchmark แนะนำไหมครับ
ผมไม่เคยทำ benchmark แบบจริงๆจังเลยแฮะ
ไม่ทราบว่ามี link หรือ tool ในการทำ benchmark แนะนำไหมครับ
"อย่าเอาแต่โทษเด็ก ถ้าเด็กมันจะห่วย ดูตัวเองบ้างว่าทำบ้านเมืองไว้เป็นยังไง"
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41232
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: สอบถาม การดึงข้อมูล ครับ ทำแบบนี้ ok เปล่า
ในเว็บ pear ของ php จะมีชุดหนึ่งที่ Benchmark อยู่ลองดูที่
http://pear.php.net
และอีกตัวที่ผมชอบคือ Xdebug
http://www.xdebug.org
http://pear.php.net
และอีกตัวที่ผมชอบคือ Xdebug
http://www.xdebug.org
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ สอบถาม php ข้อมูลไม่แสดง
โดย AePongsak » 01/08/2018 4:40 pm » ใน สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM - 2 ตอบกลับ
- 1706 แสดง
-
โพสต์ล่าสุด โดย AePongsak
01/08/2018 6:38 pm
-
-
- 2 ตอบกลับ
- 1704 แสดง
-
โพสต์ล่าสุด โดย hayatee
14/06/2021 5:34 pm
-
-
โพสต์ใหม่ สอบถาม โปรแกรมที่ไว้เช็คความเร็วเข้าหน้าเว็บครับ
โดย Thanavat_n » 23/12/2022 10:16 am » ใน ถาม - ตอบ คอมพิวเตอร์ - 2 ตอบกลับ
- 400 แสดง
-
โพสต์ล่าสุด โดย Thanavat_n
23/12/2022 10:36 am
-
-
- 1 ตอบกลับ
- 666 แสดง
-
โพสต์ล่าสุด โดย tsukasaz
14/12/2022 10:51 am
-
-
โพสต์ใหม่ สอบถาม วิธีแทรกลิ้งค์ให้ข้อความค่ะ
โดย fhakun » 15/09/2020 4:42 pm » ใน สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM - 5 ตอบกลับ
- 1615 แสดง
-
โพสต์ล่าสุด โดย fhakun
15/09/2020 5:05 pm
-
-
-
โพสต์ใหม่ สอบถาม คอมพิวเตอร์เปิดไม่ติดค่ะ
โดย Wichuda.B » 15/05/2023 7:45 pm » ใน ถาม - ตอบ คอมพิวเตอร์ - 1 ตอบกลับ
- 541 แสดง
-
โพสต์ล่าสุด โดย mindphp
15/05/2023 10:56 pm
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: Google Adsense [Bot] และบุคลทั่วไป 114