gpt4 book ai didi

mysql - 在超大 MYSQL 表中查找 varchar 列的不同值

转载 作者:可可西里 更新时间:2023-11-01 07:42:12 24 4
gpt4 key购买 nike

我想在一个超大的 MYSQL 表(10 亿行)中找到一个 varchar 列的不同值。
我有以下解决方案:

1. select distinct(col_name) from mytable; 2. export this column to a text file incrementally(select col_name from mytable where myid>x and myid<x+n), then use linux sort sort myfile.txt | uniq -u

第一种方法的问题(即使列被索引)是查询可能会在很长一段时间内崩溃,然后您需要重新开始。
我倾向于第二种方式,还有其他更快的方式吗?

最佳答案

  1. ...
  2. ...
  3. SELECT col_name FROM mytable GROUP BY col_name;

即使它们返回相同的结果集,这两个查询实际上使用不同的执行计划,我注意到 GROUP BY 在 MySQL 中比 DISTINCT 快一些,在某些情况下例。

我支持 spinning_plate 关于索引的评论。如果您已经有一个,那么获得结果的痛苦应该会少得多。您的索引的基数是多少?

关于mysql - 在超大 MYSQL 表中查找 varchar 列的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6313103/

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