mysql 查询效率问题

qq_22211065 2014-10-20 01:04:16
大家好啊,最近遇到点问题,就是 mysql 的 查询优化,很奇怪的 是,同一条语句的条件相同,但是参数值不同,效率差了好远啊,不知道大家有没有遇到过呢?能不能给点解决思路?索引已经建了的。

语句:

SELECT id from job where jobType='0' and province='广东' and city='广州';

SELECT id from job where jobType='0' and province='上海市' and city='上海';
...全文
114 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2014-10-20
  • 打赏
  • 举报
回复
还有将 province、city 都换外键 id,可以提高索引自身的效率。
qq_22211065 2014-10-20
  • 打赏
  • 举报
回复
引用 8 楼 DBA_Huangzj 的回复:
如果量已经很大,分区可以考虑,如果量不大,可以单独在province, city 这两列建个组合索引。再不行的话,mysql我不知道有没有重编译的提示,有的话就 加上,让它每次查找的时候重编译
我现在把省 的 索引去掉了,结果快了很多,也用到了索引。 刚刚查到的资料在这里,http://blog.163.com/a2chuan@126/blog/static/3651164320136222155577/ 还有没有更好的解释?
Tiger_Zhao 2014-10-20
  • 打赏
  • 举报
回复
将3个查询字段一起建成索引,可以提高效率。
如果这是主要的分组查询依据,最好做成聚集索引,这样 SELECT * 相同条件取记录也快多了。
發糞塗牆 2014-10-20
  • 打赏
  • 举报
回复
如果量已经很大,分区可以考虑,如果量不大,可以单独在province, city 这两列建个组合索引。再不行的话,mysql我不知道有没有重编译的提示,有的话就 加上,让它每次查找的时候重编译
qq_22211065 2014-10-20
  • 打赏
  • 举报
回复
引用 5 楼 DBA_Huangzj 的回复:
数据分布不平均
那数据分布不均衡怎么解决呢?能不能有好的优化方案?
發糞塗牆 2014-10-20
  • 打赏
  • 举报
回复
当某个/些值的数据占列的比例很小时,可能进行“查找操作”,而值很多时,基本上就是“扫描”操作。
發糞塗牆 2014-10-20
  • 打赏
  • 举报
回复
数据分布不平均
qq_22211065 2014-10-20
  • 打赏
  • 举报
回复
引用 3 楼 ky_min 的回复:
引用 2 楼 qq_22211065 的回复:
我程序不用 存储过程的,我程序直接用 语句查询。还能有其他方法吗?我想知道为什么 查看 广东的 速度 只要 0.001s,但是是上海的就要 0.053s.
上海的数据比较多吗?
广东的记录比较多。
还在加载中灬 2014-10-20
  • 打赏
  • 举报
回复
引用 2 楼 qq_22211065 的回复:
我程序不用 存储过程的,我程序直接用 语句查询。还能有其他方法吗?我想知道为什么 查看 广东的 速度 只要 0.001s,但是是上海的就要 0.053s.
上海的数据比较多吗?
qq_22211065 2014-10-20
  • 打赏
  • 举报
回复
我程序不用 存储过程的,我程序直接用 语句查询。还能有其他方法吗?我想知道为什么 查看 广东的 速度 只要 0.001s,但是是上海的就要 0.053s.
还在加载中灬 2014-10-20
  • 打赏
  • 举报
回复
你两个语句都多次执行试下~~ 包装成带参数存储过程,然后再执行存储,以种方式试下

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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