มีเบสอยู่ประมาณ สองแสนกว่า ๆ records พอ query เรียกให้แสดงหน้าละสิบรายการแต่มันช้ามากก ๆ เลยครับ ทำไงดี
SELECT ID,job_title,job_salary,job_address,job_photo,job_company,job_detail,Page_URL,Date_Time,job_author FROM b_joblist where (job_detail like '%$keyword%' AND job_detail like '%$workExp%' AND (job_detail like '%$jobLocation%' OR job_address like '%$jobLocation%' )) ORDER BY job_title ASC LIMIT $goto,$pagelen
โค๊ดเป็นแบบนี้ครับ ส่วนใหญ่จะค้นหาใน เทเบิล job_detail ครับ ทำไงให้เร็ว ๆ ครับ ตอนนี้มันช้ามากครับ เอ่อ บอกไว้ก่อนนะครับผมยังไม่ค่อยเก่งนะครับแค่พื้นฐาน รบกวนอธิบายง่าย ๆ นะครับ ขอบคุณล่วงหน้าครับTag : PHP, MySQL
Date :
2011-10-17 12:55:40
By :
banbanbow
View :
768
Reply :
8
ใส่ Index ให้กับฟิล์ด
job_detail
job_address
job_title
Date :
2011-10-17 13:11:59
By :
avsqlz
ไม่เห็นหน้าแสดงรายการ เลยคิดไม่ออก
ถ้ายังไม่ได้แสดง "job_detail " ในทันที หรือ นำมาแสดง แค่นิดเดียว แนะนำ substring ออกด้วยครับ
https://www.thaicreate.com/tutorial/sql-substring.html
สรุปคือ ฟิวไหน ยังไม่ได้นำมาแสดงทันที อย่า select มา
ฟิวไหน แสดงแค่นิดๆ หน่อย substring ออก เอาแค่อ่านแล้วได้ใจความ
Date :
2011-10-17 14:08:39
By :
peterxp
คือมันต้องเอา %$keyword% อันนี้ไปค้นหาใน job_detail อ่ะครับ แล้วมันอืดสุดๆ เลย
Date :
2011-10-17 14:12:52
By :
banbanbow
ค้นส่วนค้น แสดงส่วนแสดงครับ
Date :
2011-10-17 14:15:16
By :
peterxp
งั้นตัวค้นก็ไม่ได้ทำให้ช้าเหรอครับ มาช้าที่ตัวแสดง ถ้าอย่างนั้น รบกวนอีกนิดครับ จะเขียนโค๊ดยังไงให้แสดง จากตำแหน่งของ %$keyword% ที่หาเจอครับ
SELECT SUBSTR(Name,1,3) AS MySubStr FROM customer
Date :
2011-10-17 14:22:33
By :
banbanbow
ขอบคุณมากครับเดี๋ยวลองดูไปเรื่อย ๆ ก่อนครับ
Date :
2011-10-17 15:49:00
By :
banbanbow
Load balance : Server 03