本人刚入门数据库 目前这个问题就是
我现在有一个表 大概600万到1000万左右的数据
字段只有两个 一个id 主键 另一个word varchar类型
我现在需要在表中搜索word 然后看到他返回了多少条信息 不需要内容 我sql语句是这样的 select word from wordidf where word="北京" 但是速度奇慢无比 我一开始分析的时候感觉是程序问题 但是在navicat里面也是特别慢 我知道600万的数据对于mysql没什么 可能是我语句的问题 没有系统学习过数据库 刚入门没几天 求指教!
像你展示的 如果word只是写城市的话 可以在word上建索引试试
在word上加索引,
还有你只看有多少条信息,就不需要把word列出来了,直接select count(1) from wordidf where word="北京",把数据都列出来也是会占用时间的。
因为 word就是一个varchar类型 搜索的时候就特别慢
SELECT word ,COUNT(0) AS 重复次数 FROM wordidf GROUP BY word HAVING COUNT(word) > 1
不要直接查询所有的记录,你可以直接查询出现的次数select count(1) from wordidf where word="北京"
你要统计重复应该这么做
select count(*) from wordidf where word="北京"
或者
select count(*) from wordidf group by word having count(*) > 1
谢谢几个楼上的哥们啊 不过问题是 我现在根据哥几个的方法改了以后还是需要5秒左右的时间 我觉得这肯定不是理想状态啊! 索引具体的用法是怎样 能给我篇文章看下吗