gpt4 book ai didi

sql - MySQL 查询成本

转载 作者:行者123 更新时间:2023-11-29 00:58:22 26 4
gpt4 key购买 nike

有人能告诉我以下查询的 expensive 的理论差异吗?

  • SELECT * FROM posts WHERE category IN(1)
  • SELECT * FROM posts WHERE category IN(1,2)
  • SELECT * FROM posts WHERE category IN(1,2,3)

...等等...

谢谢。

最佳答案

理论上,如果您在类别上有一个索引并且该表足够大并且该索引是选择性的,那么

Cost for 1st as baseline = N
Cost of 2nd = 2 x N
Cost of 3rd = 3 x N

如果没有索引或者索引的选择性不够(例如category=1覆盖表的10%)那么它会执行表扫描。如果表很小,就连索引都懒得用了。在这种情况下

Cost of 1st as baseline = N + X
Cost of 2nd = N + 2X
Cost of 3rd = N + 3X

原因是全表扫描成本为N,扫描过程中需要X次取出整行(select *),所以处理起来稍微多了一点更多类别,但不会影响扫描表格所需的基线时间。

关于sql - MySQL 查询成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952231/

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