 |
มีหลาย Query ในหนึ่งหน้า ทำให้หน้าเว็บช้า แก้ยังไงดีครับ |
|
 |
|
|
 |
 |
|
Code (SQL)
$sql ="select page_name, post_message, post_picture, page_category FROM tbl_page INNER JOIN tbl_post ON tbl_page.page_id = tbl_post.post_page WHERE DATE(post_feed_time) = DATE(NOW()) AND and post_message != '' ORDER BY post_like_count DESC";
$query = mysql_query($sql);
$result = array();
while($row=mysql_fetch_assoc($query)){
$result[$row['page_caterory']][] = $row;
}
เวลาใช้งาน
Code (PHP)
foreach($result[1] as $i => $cat1){
if($i <= 14){
echo xx;
}
}
foreach($result[2] as $i => $cat1){
if($i <= 14){
echo xx;
}
}
|
ประวัติการแก้ไข 2015-11-12 12:11:22 2015-11-12 12:12:46
 |
 |
 |
 |
Date :
2015-11-12 12:10:09 |
By :
progamer2000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือตอนนี้ข้อมูลมีประมาณ 1,000,000 record ถ้าทำแบบนี้มันจะหนักเกินไปหรือป่าวครับ
|
 |
 |
 |
 |
Date :
2015-11-12 13:03:57 |
By :
zeero |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
วิธีที่ 1
Code (SQL)
select * FROM tbl_page,tbl_post
WHERE tbl_page.page_id = tbl_post.post_page
AND DATE(post_feed_time) = CUR_DATE() AND page_category = 2 AND post_message > ''
วิธีที่ 2
Code (SQL)
SELECT *
FROM (
select * from tbl_page where .......
) tb1
inner join (
select * from tbl_post where .......
) tb2
on tb1.page_id = tb2.post_page
เลือกเฉพาะรายการที่ต้องการของแต่ละตาราง เหลือข้อมูลให้น้อยที่สุด แล้วค่อยมา join กัน
|
ประวัติการแก้ไข 2015-11-12 13:08:17 2015-11-12 13:08:34 2015-11-12 13:10:28
 |
 |
 |
 |
Date :
2015-11-12 13:07:48 |
By :
NewbiePHP |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ่อ ผมลืมไปครับว่ามันมีเงื่ิอนไขเอาเฉพาะวันนี้ เพราะฉะนั้นถ้า Query ออกมาครั้งหนึ่งน่าจะประมาณ 2000 record ครับ
|
 |
 |
 |
 |
Date :
2015-11-12 13:09:16 |
By :
zeero |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้ union มันจะเร็วหรือช้าหว่า
|
 |
 |
 |
 |
Date :
2015-11-12 14:03:44 |
By :
progamer2000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ
ตอนนี้ผมพอจะได้แนวคิดจากคุณ progamer2000 เอาไปลองใช้งานดูแล้วครับ
เวลาลดลงมาค่อนข้างเยอะเลยครับ จาก 30 กว่าวินาที เหลือประมาณ 3 วินาทีครับ
|
 |
 |
 |
 |
Date :
2015-11-12 14:28:23 |
By :
zeero |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ดีใจด้วยคับ อิอิ ไปเสิชวิธีมาจาก google เหมือนกัน เขาแนะนำหลายวิธีเลย 1 ในนั้นก็ union นิแหละคับ
แต่ผมก็ไม่เคยลองทำด้วย เลยไม่รู้ความเร็ว เมื่อเทียบกับคิวรี่แบบอื่น
|
 |
 |
 |
 |
Date :
2015-11-12 20:56:06 |
By :
progamer2000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|