ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingquery ข้อมูลเยอะ ยังไงให้เร็วครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: query ข้อมูลเยอะ ยังไงให้เร็วครับ  (อ่าน 2894 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
zerohate
ก๊วนเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 387



ดูรายละเอียด
« เมื่อ: 16 มกราคม 2009, 19:57:49 »

มีข้อมูลในดาต้าเบสเยอะมากๆ ประมาณ 1 แสน record ได้ครับ แต่ละ record มีชื่อฟิลล์ id, title, detail

ผมอยากจะดึงข้อมูลมาโชว์หน้าละ 100 record จะเขียนโค๊ตยังไงให้ดึุงข้อมูลได้เร็วครับ เพราะตอนนี้ใช้ limit 0, 100

แต่มันค่อยข้างช้า มีวิธีอื่นแนะนำไหมครับ ขอบคุณครับ
บันทึกการเข้า

Moha
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 67
ออฟไลน์ ออฟไลน์

กระทู้: 1,514



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 16 มกราคม 2009, 22:00:19 »

ทำ index หรือยังครับ ช่วยได้เยอะนะครับ
บันทึกการเข้า

น่ารักดอทคอม : ถึกๆ ต่อไป กับ เว็บ 1.x หรือ เว็บทำมือวันละ หน้าสองหน้า manual html เพียวๆ + เทคนิคเดิมๆ

เว็บใครๆ ก็รัก
- แนะนำ => Directory : หางาน : เกมส์ : หวย
- pha.narak.com : PHA => People Living With HIV / AIDS : เว็บไซค์สังคมของผู้ป่วย HIV
ใครมี twitter คุยกันขำๆ กับ ผมได้นะ => @iammoha หรือจะ facebook ก็ @paspon
digitalex
สมุนแก๊งเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 664



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 16 มกราคม 2009, 22:05:27 »

อยากรุ้เหมือนกัน   Cry
บันทึกการเข้า

zerohate
ก๊วนเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 387



ดูรายละเอียด
« ตอบ #3 เมื่อ: 16 มกราคม 2009, 22:07:33 »

ทำ index หรือยังครับ ช่วยได้เยอะนะครับ

ยังไมไ่ด้ทำเลยครับ พอจะแนะนำวิธีได้ไหมครับ

ผมลองหาอ่านในเน็ต มันมีแต่การทำ index สำหรับข้อมูลที่เป็นการ where ก็เลย กำลัง งง วิธีอยู่ครับ
บันทึกการเข้า

lopata
ก๊วนเสียว
*

พลังน้ำใจ: 16
ออฟไลน์ ออฟไลน์

กระทู้: 323



ดูรายละเอียด
« ตอบ #4 เมื่อ: 16 มกราคม 2009, 22:14:34 »

ตามคุณ moha เลย
  โดยทั่วไป indexing ช่วยได้เยอะ สำหรับ table ที่มีข้อมูลมากกว่าหลักพันขึ้นไป
  ลองดูว่า table นั้นมี index อะไรบ้างใช้ mysql> show index from table_name;

  ต้องถามว่า paging นั้น ใช้เงื่อนไขอะไรในการแบ่งหน้า เพื่อใช้เป็น where cause ได้อีก

  ตัวอย่าง id  สามารถใช้แบ่ง page ซึ่งสมมุติว่า id มีคุณสมบัติ
    - auto_increment
    - เป็น primary key => ซึ่งมันจะมี index โดย default อยู่แล้ว

  อันนี้คงต้องปรับ query ให้มี where id between start_row and end_row
 แทน limit start,offset เดิม

พอเป็นข้อมูลครับ
บันทึกการเข้า
figaro
คนรักเสียว
*

พลังน้ำใจ: 7
ออฟไลน์ ออฟไลน์

กระทู้: 112



ดูรายละเอียด
« ตอบ #5 เมื่อ: 16 มกราคม 2009, 22:22:34 »

มีวิธีอื่นเช่นทำเป็น xml หรือไม่ก็ cache query
บันทึกการเข้า

อย่าปล่อยให้ความโลภครอบงำ
lowprofile
คนรักเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 189



ดูรายละเอียด
« ตอบ #6 เมื่อ: 16 มกราคม 2009, 23:27:31 »

ลองทำ index ก่อนเถอะครับ วิธีอื่นค่อยว่ากัน ถ้าหลังจากทำแล้วยังช้าอยู่

ถ้ายังไม่ไหวค่อยศึกษาเรื่อง Cache ( ADODB Cache หรือ Pear Cache_Lite ก็ได้ )
และถ้ายังช้าอีกคงมีอะไรผิดปกติแล้วแหละครับ
บันทึกการเข้า

ชีวิตนี้น้อยนัก

๏ พายเถิดพ่ออย่ารั้ง   รอพาย
จวนตะวันจักสาย   ส่องฟ้า
ของสดสิ่งควรขาย   จักขาด ค่าแฮ
ตลาดเลิกแล้วอ้า   บ่นอื้นเอาใคร ๚ะ๛


คราวนี้เป็นคราวเงินหมด
ธนาคาร : ไทยพาณิชย์ จำกัด (มหาชน) สาขา : อุดรธานี
ชื่อบัญชี : โครงการช่วยชาติโดยหลวงตามหาบัว ญาณสัมปันโน
เลขที่บัญชี : 510-2-83957-5
หน้า: [1]   ขึ้นบน
พิมพ์