我已经搜索了几天,但无法找到任何可以缩短运行查询所需时间的解决方案。
我有两张表:
我要选择的是product_db中状态为“在线”的产品中随机的一张图片,并且该产品必须在页面ID = 3中。product_db中有超过90,000个产品,而product_page中有超过150,000行。
我现在使用的查询是:
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秒才能运行。对于一个网页来说,这是相当长的时间。
我尝试了一些其他的查询,先从页面ID = 3的product_page中返回一个随机的行,然后再查询product_db(这确实减少了它所需的时间),但问题是我无法比较该产品是否“在线”。
我有两张表:
"product_db":
unique_id - [index]
image
url_title
status - [index]
"product_page"
id
product_unique_id - [index]
page_id - [index]
我要选择的是product_db中状态为“在线”的产品中随机的一张图片,并且该产品必须在页面ID = 3中。product_db中有超过90,000个产品,而product_page中有超过150,000行。
我现在使用的查询是:
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秒才能运行。对于一个网页来说,这是相当长的时间。
我尝试了一些其他的查询,先从页面ID = 3的product_page中返回一个随机的行,然后再查询product_db(这确实减少了它所需的时间),但问题是我无法比较该产品是否“在线”。