我几天来一直在寻找这个问题的解决方案,找不到任何可以减少运行查询所需的时间.
我有2张桌子:
"product_db":
unique_id - [index]
image
url_title
status - [index]
"product_page"
id
product_unique_id - [index]
page_id - [index]
Run Code Online (Sandbox Code Playgroud)
我想要选择的是product_db中的随机图像,其中status ='Online'且产品必须在页面id = 3中
product_db有超过90,000个产品,product_page有超过150000行.
我现在使用的查询是:
SELECT image FROM product_db a,product_page b WHERE b.page_id = 3 AND a.status ='Online'AND a.unique_id = b.product_unique_id ORDER BY RAND()LIMIT 1
此查询大约需要2.3秒才能运行.这是一个很长的时间来加载网页.我尝试了一些其他查询,首先从page_id = 3返回product_page中的随机行,然后查询product_db(它确实减少了所需的时间)但问题是我无法比较产品是否在线"在线" .