|
|
|
ขอถาม เกี่ยวกับการคิวรี่ข้อมูลโดยการ LEFT JOIN หน่อยครับ |
|
|
|
|
|
|
|
ลองสร้าง index หรือยังครับ
|
|
|
|
|
Date :
2010-09-28 21:10:16 |
By :
mee079 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอถามเพิ่มเติมอีกนิดน่ะครับ
การคิวรี่ข้อมูลถ้าแสดงผลตามที่เราต้องการ
แต่ใช้เวลาประมาณ 3-5 นาที
ถือว่าผิดปกติหรือเปล่าครับ
|
|
|
|
|
Date :
2010-09-29 08:39:16 |
By :
iieszz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยู่ที่เน็ตรึป่าวครับ
|
|
|
|
|
Date :
2010-09-29 08:46:36 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมทดสอบ ที่ Appserv ครับ
แต่สาเหตุที่มันช้าแบบนี้ผมว่ามันน่าจะเกิดจากการใช้ LEFT JOIN
เพราะว่าลองใช้ INNER JOIN แล้วไม่ถึง 1 นาที
จะมีวิธีไหนทำให้ใช้ LEFT JOIN แล้วคิวรี่ได้เร็วขึ้นบ้างครับ
|
|
|
|
|
Date :
2010-09-29 09:12:38 |
By :
iieszz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จำนวนเรคคอร์ด
เอาโครงสร้างสองตารางมาดูครับ
|
|
|
|
|
Date :
2010-09-29 09:37:27 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตารางที่1: ตารางสมาชิก tb_member (3361 แถว)
ตารางที่2: ตารางลงทะเบียน tb_register (48192 แถว)
ตอนนี้กำลังเขียนโค๊ดหาคนที่ไม่ได้ลงทะเบียน คือ ไม่มี id_member อยู่ในตาราง tb_register
Code (PHP)
select * from tb_member where id_member NOT IN(select id_member from tb_register)
ใช้เวลาประมาณ 8 นาที ครับ
|
ประวัติการแก้ไข 2010-09-29 10:06:15
|
|
|
|
Date :
2010-09-29 10:05:25 |
By :
iieszz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มาเพิ่มรายละเอียดคำถามครับ
เพื่อนลองเอาไปรันบน linux centOS 5.2 ใช้เวลาในการคิวรี่ ไม่เกิน 1 นาที
ซึ่งต่างกับ server2003 ที่ติดตั้ง appserv 2.5.10 ใช้เวลา 7-8 นาที
*server สเปกเท่าๆกัน คำสั่งคิวรี่คำสั่งเดียวกัน แต่ติดตั้ง database คนล่ะแบบ
แบบนี้อยู่ที่การคอนฟิก database ด้วยหรือเปล่าครับ
|
|
|
|
|
Date :
2010-09-29 12:20:12 |
By :
iieszz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คับคำแนะนำ ให้ใช้ int ครับ (4 ไบท์) และใช้ แบบ unsign จะดีกว่าครับ ถึงยังไงมันก็คงรองรับไม่ไหวหรอกครับ bigint
NOT IN หรือ IN อันนี้ก็ช้านะครับ ถ้ามี ข้อมูลใน IN นี้มากๆ
ใส่ ดัชนีย์ไว้ที่ id_member ด้วยครับ
|
|
|
|
|
Date :
2010-09-29 17:26:45 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณสำหรับคำแนะนำครับผม
คือ ที่ผมใช้ id_member เป็น bigint เพราะว่า จะต้องเก็บข้อมูลที่เป็นตัวเลข 10 หลัก
เคยใช้ int เหมือนกับได้ถึงแค่ 7-8 หลัก แต่ unsign มาช่วยขอไปลองก่อนน่ะครับ
ส่วนการใส่ ดัชนี ยังไม่เคยทำเลย
|
|
|
|
|
Date :
2010-09-29 20:16:14 |
By :
iieszz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|