gpt4 book ai didi

mysql查询where和order by需要很长时间

转载 作者:可可西里 更新时间:2023-11-01 08:17:38 26 4
gpt4 key购买 nike

我有 700 万条记录的 mysql 数据库

当我像这样运行查询时

select  * from  data where cat_id=12 order by id desc limit 0,30

查询需要很长时间,比如 0.4603 秒

但相同的查询使用 out (where cat_id=12) 或使用 out (order by id desc) 非常快查询需要很长时间,比如 0.0002 秒

我有 cat_id 和 id 的索引

有任何方法可以快速查询(where and order by)

谢谢

最佳答案

创建一个结合了 cat_id 和 id 的复合索引。参见 http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html语法和示例。

如果您只声明 'cat_id=12',您将获得所有匹配的行,这很快,因为有索引。但是这些行不会被排序,所以 mysql 必须将它们全部读入一个临时表并对该表进行排序,这很慢。

类似地,'order by id desc' 将快速对行进行排序,但 mysql 必须读取所有行以找出哪些具有 'cat_id=12',这很慢。

复合索引应该可以解决这些问题。

关于mysql查询where和order by需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20429299/

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