我的桌子tbltemp上有大约 90 万条记录。这些列是:(主键,id自动增量)name,,,,,,,,,。qtypricestatusmod_datecreated_date
我的查询是:
SELECT *
FROM tbltemp
WHERE qty > 3
ORDER By Rand()
LIMIT 50
执行大约需要 7 到 10 秒。如何优化我的表或查询?
我的桌子tbltemp上有大约 90 万条记录。这些列是:(主键,id自动增量)name,,,,,,,,,。qtypricestatusmod_datecreated_date
我的查询是:
SELECT *
FROM tbltemp
WHERE qty > 3
ORDER By Rand()
LIMIT 50
执行大约需要 7 到 10 秒。如何优化我的表或查询?
在您的查询中:
SELECT * FROM tbltemp WHERE qty > 3 ORDER By Rand() LIMIT 50
对于查询优化,请看一下:
qty列。qty您应该在列上创建广告索引。
总之ORDER By Rand()很费时间...
这是order by rand(). 试试这个,看看它是否有效
select @lims := floor(1+rand()*(count(*) - 1)) from tbltemp;
PREPARE mystatement FROM "SELECT * FROM tbltemp WHERE qty > 3 LIMIT ?, 50";
EXECUTE mystatement USING @lims;