求教去除重复语句优化

kinthtime 2016-10-19 07:55:27

现在有个mysql数据库的 ProductList表,简化如下:
ID Product createtime
1001 洗衣机 2016/10/1 0:00
1002 电饭煲 2016/10/2 0:00
1003 电饭煲 2016/10/2 0:00
1004 电饭煲 2016/10/3 0:00
110001 电视机 2016/10/5 0:00
1200001 电视机 2016/10/5 0:00

我想 select product from ProductList 得到的结果是:
洗衣机
电饭煲
电视机

因为表的数据有几千万条,用了如下三种写法都不行 ,请教高手我该如何写优化语句
select distinct product from ProductList
select product from ProductList group by product
select product from ProductList group by product having count(product) > 1



...全文
135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_35758285 2016-10-19
  • 打赏
  • 举报
回复
可能是varchar类型的问题,你先分月测试一下,如果同数据量下某个区间的速度特别慢的话单独拿出来开,使用二分法或夹逼法,怀疑是表中数据本身有异常。
中国风 2016-10-19
  • 打赏
  • 举报
回复
step1:product --创建上索引 create index IX_ProductList on ProductList (product ); step2:再用你的方法1 select distinct product from ProductList
卖水果的net 2016-10-19
  • 打赏
  • 举报
回复
语句本身没有优化的空间了; 加个索引试试,如果不让加索引,或加了索引还是很慢,就要考虑在硬件上提升一下了; 如果你对这些数据的实时性要求不高的话,可以考虑在晚上跑一个任务,把不重复数据写入到一个临时表,查询时去查询临时表,而不是来查这个业务表;
xiaoxiangqing 2016-10-19
  • 打赏
  • 举报
回复
数据量大,服务器配置不高,慢是正常的。
kinthtime 2016-10-19
  • 打赏
  • 举报
回复
是速度不行,要太长时间, 求优化
baidu_35289351 2016-10-19
  • 打赏
  • 举报
回复
去重复显示名称,用下面的语句不行?为什么不行?速度问题?还是数据不对? select distinct product from ProductList
kinthtime 2016-10-19
  • 打赏
  • 举报
回复
ID的类型是 varchar(32) 不是int

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧