gpt4 book ai didi

sql - 帮助优化简单的 MySQL 查询

转载 作者:太空宇宙 更新时间:2023-11-03 10:27:39 24 4
gpt4 key购买 nike

我只是通过记录慢速查询并EXPLAINing 来优化查询。我想事情是......我不确定我应该寻找什么样的东西......我有疑问

SELECT DISTINCT
screenshot.id,
screenshot.view_count
FROM screenshot_udb_affect_assoc
INNER JOIN screenshot ON id = screenshot_id
WHERE unit_id = 56
ORDER BY RAND()
LIMIT 0, 6;

看这两个要素....我应该重点优化哪里?

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1 SIMPLE screenshot ALL PRIMARY NULL NULL NULL 504 Using temporary; Using filesort
1 SIMPLE screenshot_udb_affect_assoc ref screenshot_id screenshot_id 8 source_core.screenshot.id,const 3 Using index; Distinct

最佳答案

首先请不要使用 ORDER BY RAND()。当表很大时,这尤其会降低性能。 例如,即使使用 limit 1 ,它也会生成与行数相等的随机数,并会选择最小的一个。如果表大小很大或必然会增长,这可能效率低下。可以在以下位置找到有关此的详细讨论:http://www.titov.net/2005/09/21/do-not-use-order-by-rand-or-how-to-get-random-rows-from-table/

最后,还要确保您的 join 列已编入索引。

关于sql - 帮助优化简单的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4116479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com