首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql -过滤表范围内的学位列表

Mysql -过滤表范围内的学位列表
EN

Stack Overflow用户
提问于 2017-04-14 03:19:45
回答 1查看 201关注 0票数 0

因此,我有一个包含度范围的mysql表,我应该用另一个度范围进行查询。

目前,我正在执行以下查询:

代码语言:javascript
复制
SELECT * FROM degrees WHERE 
  start_date = '2017-01-01' AND finish_date = '2018-01-01'
  AND (
    (0.51797199999999 BETWEEN begin_degree AND end_degree) 
    OR (2.836271 BETWEEN begin_degree AND end_degree)
    OR (6.953746 BETWEEN begin_degree AND end_degree)
    OR (9.684033 BETWEEN begin_degree AND end_degree)
    OR (13.877806 BETWEEN begin_degree AND end_degree)
    ...
  )

问题是这个度度表中有数百万行,每个查询或多或少有200个or语句。正因为如此,查询需要7-8秒才能运行,我必须按请求执行另外10个类似的查询。

那么,有没有人知道更好/更快的查询方法?我还创建了start_date、finish_date、begin_degree和end_degree的索引。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-04-14 03:21:40

我会说,7-8秒的查询并不是那么糟糕。我的一个建议是在(start_date, finish_date begin_degree, end_degree)上建立索引。这可能有助于提高性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43400137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档