mysql - 我应该如何优化这个查询?

标签 mysql indexing

我正在从数据库中选择产品列表并将其显示给用户。我已经为 where 子句中使用的列创建了索引,那么返回和加载结果也需要很多时间。

SELECT 
    prod_disp.pdid, prod_disp.cat_id, prod_disp.title, prod_disp.image_url, 
    prod_disp.price, prod_stat.eyeing_ids, prod_stat.eyeing_num, 
    prod_stat.listing_num, prod_stat.reviews_num, prod_stat.reviews_score
FROM 
    products.prod_disp 
    INNER JOIN products.prod_stat ON prod_disp.pdid = prod_stat.pdid
WHERE 
    prod_disp.active='1' AND prod_disp.cat_id='7' 
ORDER BY 
    RAND()
LIMIT 0, 21;

最佳答案

计算结果。

通过 rand() 删除订单。

生成一个 0 到 Count-21 之间的随机数,我们称之为 _rand

替换 LIMIT 0, 21;限制_rand,_rand+21;

关于mysql - 我应该如何优化这个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16203966/

相关文章:

php - 特殊字符替换为问号

php - num_rows 在 php/mysqli 中不起作用

MySQL 语法错误从 &lt;textarea&gt; 插入类型 VARCHAR(999) <<< 已解决使用不正确的表名

elasticsearch - 创建新的索引映射错误

apache - 将 Solr (4.8.1) 指向目录 (Windows 7)

mysql存储过程由于Case找不到表

PHP,按日/月/年从表中以月为间隔获取事件

mysql - MySQL 中的 FORCE INDEX - 我把它放在哪里?

postgresql - B+树或B树

hadoop - TEZ的Hive索引