Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > พอจะมีวิธีที่ทำให้ไว้ขึ้นไหมครับเกี่ยวกับการเช็คกับ sql



 

พอจะมีวิธีที่ทำให้ไว้ขึ้นไหมครับเกี่ยวกับการเช็คกับ sql

 



Topic : 109021



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์




- พอดีเป็นงานระบบ CMS ของลูกค้าน่ะครับ อย่างพวก discuz smf phpwind แล้วมีออเดอร์มาให้จัดทำการโชว์กระทู้ล่าสุดบ้าง โชว์รูปของสมาชิกในส่วนต่างๆภายในเว็บ ซึ่งระบบทั้งสองค่ายก็มีส่วนรองรับการทำงานมากมาย ที่สามารถดึงมาใช้ประยุกต์ได้ง่ายๆ
- และแล้วปัญหาก็มีอยู่ขั้นตอนหนึ่งออเดอร์ประเภทเดียว(ยกตัวอย่างมากรณีหนึ่ง)ที่ต้องมีการเช็คข้อมูลผ่านทางฐานข้อมูล ยกตัวอย่างเช่นดึงภาพผู้ที่กระทู้ล่าสุด
- ซึ่งถ้าผู้โพสกระทู้นั้นระบบจะชี้ผ่าน รหัสสมาชิกได้เลยเช่น สมาชิกคนแรกก็เลข 0 แล้วระบบรูปก็ใช้การดึงผ่านตัวเลขของสมาชิกแล้วมาโชว์ได้เลย
- และแล้วปัญหาก็เกิดขึ้นเมื่อจะดึงภาพของผู้ที่โพสตอบล่าสุดมาโชว์แล้วต้องตรงกับกระทู้นั้นๆ ในส่วนของระบบถ้าเป็นส่วนของผู้โพสกระทู้(เจ้าของกระทู้) เราดึง รหัสสมาชิกมาดึงรูปได้เลย แต่กรณีตอบล่าสุด ระบบมันส่งเป็นชื่อ user
- ซึ่งเกิดปัญหาใหญ่ที่ต้องนำชื่อสมาชิกนั้นไปเช็คกับฐานข้อมูลว่ารหัสสมาชิกนั้นของคนที่ชื่อตามนี้คือรหัสอะไรแล้วค่อยนำรูปออกมา
- ซึ่งการจัดเก็บรูปส่วนตัวของสสมาชิก ระบบใช้รหัสสมาชิกของคนนั้นๆเป็นชื่อ foder ในการเก็บ
ปัญหาจากที่กล่าวมาข้างบน
- เนื่องจากกระทู้น้อยๆ 50-60 ยังไม่เป็นอะไร แต่กรณีห้องที่มีกระทู้เยอะๆอย่าง 1000-5000 มันจะหน่วงแบบสุดๆ 10-20 วิเลยทีเดียวเพราะมันต้องเช็คทุกรูป
- แล้วสมาชิกของลูกค้าบางเว็บก็มโหฬาร 2 แสน ถึง 5 แสน อัพครับเลยทำให้หน่วงแบบสุดๆ
- แต่ผมได้ปรับตรง WHERE ชี้ไปที่ไอดีเลยนะครับเช่น WHERE username="$user"

สรุประบบที่ยกตัวอย่าง
- เอาชื่อสมาชิกไปเช็คกับฐานข้อมูลแล้วส่งรหัสสมาชิกออกมา เพื่อส่งไปนำรูปส่วนตัวของสมาชิกออกมา ซึ่งการจัดดเก็บรูปส่วนตัวของระบบใช้รหัสสมาชิกของคนนั้นๆเป็นชื่อ foder เก็บ

สิ่งที่อยากขอความช่วยเหลือ
- พอมีวิธีจัดเก็บหรือแนวทางแก้ไขไหมครับ เพราะอัลกอที่ผมคิดได้ตอนนี้คือ มี 2000 กระทู้มันก็เช็ค 2000 ครั้งกับฐานข้อมูล

-------------------------------------------------
สิ่งที่คิดแก้ปัญหาตอนนี้ได้คร่าวๆ
- นำรายชื่อสมาชิกทั้งหมดมาสร้างเขียนเป็นแบบ array ไว้เลยอัพเดททุกวัน ลดภาระการเชื่อมฐานข้อมูล แต่เช็คผ่าน array เอา (ผมให้ระบบมันเขียนลงไฟล์ออโต้ไม่ต้องมาเช็คอัพเดทข้อมูลสมาชิกเอา แบบเขียนลงเหมือนเราสร้างไฟล์มาตัวนึงบันทึกเป็น text)
- แต่ปัญหาคือถ้าสมาชิก 2 แสน ถึงล้านคน array จะเก็บไหวไหม จะกินเมมมากไหม
- เพราะผมเคยทำโปรเจคนึงเก้บข้อมูล 2-3 พันไว้ใน array ผลคือเช็คผ่านอาเรย์ใช้เวลาแค่เสี้ยววิ แต่พอเทียบกับเช็คผ่านฐานข้อมูล ดันอืดเป็นเต่าเลย
--------------------------------------------------
ฝากพี่ๆเพื่อนๆช่วยแนะนำประสบการณ์ด้วยนะครับ ผมแก้ปัญหาแนวๆนนี้ไม่ตกสักที งานที่ต้องใช้การเปรียบเทียบข้อมูลทีละเยอะๆ แล้วหน่วงแบบสุดๆ อยากให้มันไวแบบอาเรย์บ้าง



Tag : PHP, MySQL, CakePHP, Web Hosting









ประวัติการแก้ไข
2014-06-09 02:18:40
2014-06-09 02:20:06
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-06-09 02:16:13 By : bp28311 View : 1080 Reply : 3
 

 

No. 1



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ใช้ cache ได้ไม๊ครับ จะได้เร็วขึ้น ในส่วนของ user น่ะครับ phpfast

http://www.phpfastcache.com ก็แหล่มอยู่นะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-09 19:16:01 By : deawx
 


 

No. 2



โพสกระทู้ ( 3,156 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : deawx เมื่อวันที่ 2014-06-09 19:16:01
รายละเอียดของการตอบ ::
เจ๋งดีครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-09 23:20:57 By : sakuraei
 

 

No. 3



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : deawx เมื่อวันที่ 2014-06-09 19:16:01
รายละเอียดของการตอบ ::
phpfastcache กรณีเราเผลอไปกดเป้น 10 นาที แล้วแก้โค้ดใหม่เป้น 5 วิ ระบบมันยังจำตอนเดิมอยู่ ผมจะอัพเดทแคชยังไงหรอครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-10 00:15:00 By : bp28311
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : พอจะมีวิธีที่ทำให้ไว้ขึ้นไหมครับเกี่ยวกับการเช็คกับ sql
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่